Skip to content

Commit c57c3b3

Browse files
committed
feat: Add azure billing service
1 parent e65a931 commit c57c3b3

File tree

12 files changed

+542
-18
lines changed

12 files changed

+542
-18
lines changed

src/enums/schemasMap.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ export default {
2525
[services.backupVault]: 'azureBackupVault',
2626
[services.backupInstance]: 'azureBackupInstance',
2727
[services.backupPolicy]: 'azureBackupPolicy',
28+
[services.billing]: 'azureBilling',
2829
[services.cdnCustomDomains]: 'azureCdnCustomDomain',
2930
[services.cdnEndpoints]: 'azureCdnEndpoint',
3031
[services.cdnOriginGroups]: 'azureCdnOriginGroup',

src/enums/serviceMap.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ import AzureServiceBus from '../services/serviceBus'
8282
import AzureBackupVault from '../services/backupVault'
8383
import AzureBackupInstance from '../services/backupInstance'
8484
import AzureBackupPolicy from '../services/backupPolicy'
85+
import AzureBilling from '../services/billing'
8586

8687
/**
8788
* serviceMap is an object that contains all currently supported services for AWS
@@ -110,6 +111,7 @@ export default {
110111
[services.backupVault]: AzureBackupVault,
111112
[services.backupInstance]: AzureBackupInstance,
112113
[services.backupPolicy]: AzureBackupPolicy,
114+
[services.billing]: AzureBilling,
113115
[services.cdnCustomDomains]: AzureCdnCustomDomains,
114116
[services.cdnEndpoints]: AzureCdnEndpoints,
115117
[services.cdnOriginGroups]: AzureCdnOriginGroups,

src/enums/services.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ export default {
2020
backupVault: 'backupVault',
2121
backupInstance: 'backupInstance',
2222
backupPolicy: 'backupPolicy',
23+
billing: 'billing',
2324
cdnCustomDomains: 'cdnCustomDomains',
2425
cdnEndpoints: 'cdnEndpoints',
2526
cdnOriginGroups: 'cdnOriginGroups',

src/properties/logger.ts

Lines changed: 47 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
/* eslint-disable max-len */
22
export default {
33
// Action Group
4-
foundActionGroups: (num: number): string =>
5-
`Found ${num} action groups`,
4+
foundActionGroups: (num: number): string => `Found ${num} action groups`,
65
// Activity Log Alerts
76
foundActivityLogAlerts: (num: number): string =>
87
`Found ${num} Activity Log Alerts`,
@@ -48,10 +47,12 @@ export default {
4847
`Found ${num} auto provisioning settings`,
4948
// Azure Backup
5049
foundBackupVaults: (num: number): string => `Found ${num} Backup Vaults`,
51-
foundBackupInstances: (num: number): string => `Found ${num} Backup Instances`,
50+
foundBackupInstances: (num: number): string =>
51+
`Found ${num} Backup Instances`,
5252
foundBackupPolicies: (num: number): string => `Found ${num} Backup Policies`,
5353
/* Cognitive services account */
54-
foundCognitiveServicesAccounts: (num: number): string => `Found ${num} cognitive services accounts`,
54+
foundCognitiveServicesAccounts: (num: number): string =>
55+
`Found ${num} cognitive services accounts`,
5556
/* CDN Profiles */
5657
foundCdnProfiles: (num: number): string => `Found ${num} CDN profiles`,
5758
/* CDN Endpoints */
@@ -67,12 +68,15 @@ export default {
6768
foundContainerRegistries: (num: number): string =>
6869
`Found ${num} container registries`,
6970
/* Cosmos DB */
70-
foundCosmosDbAccounts: (num: number): string => `Found ${num} cosmos DB accounts`,
71+
foundCosmosDbAccounts: (num: number): string =>
72+
`Found ${num} cosmos DB accounts`,
7173
/* Data Collection Rule */
72-
foundDataCollectionRules: (num: number): string => `Found ${num} data collection rules`,
74+
foundDataCollectionRules: (num: number): string =>
75+
`Found ${num} data collection rules`,
7376
/* Data Factory */
7477
foundDataFactory: (num: number): string => `Found ${num} data factories`,
75-
foundIntegrationRuntimes: (num: number): string => `Found ${num} integration runtimes`,
78+
foundIntegrationRuntimes: (num: number): string =>
79+
`Found ${num} integration runtimes`,
7680
/* Database */
7781
foundManagedSqlInstance: (num: number): string =>
7882
`Found ${num} managed SQL instances`,
@@ -83,9 +87,11 @@ export default {
8387
foundDatabaseSqlVm: (num: number): string =>
8488
`Found ${num} SQL virtual machines`,
8589
// Data Lake
86-
foundDataLakeStorageAccounts: (num: number): string => `Found ${num} Data Lake storage accounts`,
90+
foundDataLakeStorageAccounts: (num: number): string =>
91+
`Found ${num} Data Lake storage accounts`,
8792
// Diagnostic Settings
88-
foundDiagnosticSettingsResources: (num: number): string => `Found ${num} diagnostic settings`,
93+
foundDiagnosticSettingsResources: (num: number): string =>
94+
`Found ${num} diagnostic settings`,
8995
// Disk
9096
foundDisks: (num: number): string => `Found ${num} disks`,
9197
// DNS Zone
@@ -103,7 +109,8 @@ export default {
103109
`Found ${num} event hub namespaces`,
104110
foundEventHubs: (num: number): string => `Found ${num} event hubs`,
105111
// ExpressRouteGateways
106-
foundExpressRouteGateways: (num: number): string => `Found ${num} ExpressRoute Gateways`,
112+
foundExpressRouteGateways: (num: number): string =>
113+
`Found ${num} ExpressRoute Gateways`,
107114
// File Share
108115
foundFileShares: (num: number): string => `Found ${num} file shares`,
109116
// Firewall
@@ -121,7 +128,8 @@ export default {
121128
// Load balancer
122129
foundLoadBalancers: (num: number): string => `Found ${num} load balancers`,
123130
// Machine Learning Workspaces
124-
foundMachineLearningWorkspaces: (num: number): string => `Found ${num} machine learning workspaces`,
131+
foundMachineLearningWorkspaces: (num: number): string =>
132+
`Found ${num} machine learning workspaces`,
125133
// Metric Alert
126134
foundMetricAlerts: (num: number): string => `Found ${num} metric alerts`,
127135
// Monitor Alert Rules
@@ -142,13 +150,17 @@ export default {
142150
// RedisCache
143151
foundRedisCaches: (num: number): string => `Found ${num} Redis caches`,
144152
// Replication Appliances
145-
foundReplicationAppliances: (num: number): string => `Found ${num} replication appliances`,
153+
foundReplicationAppliances: (num: number): string =>
154+
`Found ${num} replication appliances`,
146155
// Replication Centers
147-
foundReplicationCenters: (num: number): string => `Found ${num} replication centers`,
156+
foundReplicationCenters: (num: number): string =>
157+
`Found ${num} replication centers`,
148158
// Replication Networks
149-
foundReplicationNetworks: (num: number): string => `Found ${num} replication networks`,
159+
foundReplicationNetworks: (num: number): string =>
160+
`Found ${num} replication networks`,
150161
// Replication Policies
151-
foundReplicationPolicies: (num: number): string => `Found ${num} replication policies`,
162+
foundReplicationPolicies: (num: number): string =>
163+
`Found ${num} replication policies`,
152164
// Resource Groups
153165
foundResourceGroups: (num: number): string => `Found ${num} resource groups`,
154166
// Security Assesments
@@ -183,11 +195,14 @@ export default {
183195
// Storage Blobs
184196
foundStorageBlobs: (num: number): string => `Found ${num} storage blobs`,
185197
// SynapseBigDataPools
186-
foundSynapseBigDataPools: (num: number): string => `Found ${num} synapse big data pools`,
198+
foundSynapseBigDataPools: (num: number): string =>
199+
`Found ${num} synapse big data pools`,
187200
// SynapseSqlPools
188-
foundSynapseSqlPools: (num: number): string => `Found ${num} synapse SQL pools`,
201+
foundSynapseSqlPools: (num: number): string =>
202+
`Found ${num} synapse SQL pools`,
189203
// SynapseWorkspace
190-
foundSynapseWorkspaces: (num: number): string => `Found ${num} synapse workspaces`,
204+
foundSynapseWorkspaces: (num: number): string =>
205+
`Found ${num} synapse workspaces`,
191206
// Traffic Manager
192207
foundTrafficManagerProfile: (num: number): string =>
193208
`Found ${num} traffic manager profiles`,
@@ -214,4 +229,18 @@ export default {
214229
`Fetched data from Azure REST API: ${url}`,
215230
/* Other */
216231
fetchingMoreRestApiData: 'Found more REST API data, fetching more data...',
232+
/**
233+
* Billing
234+
*/
235+
fetchingAggregateFinOpsData:
236+
'Fetching aggregate FinOps data for this Azure account via the Azure REST API...',
237+
unableToFindFinOpsAggregateData:
238+
'❌ Unable to getUsageDetails data for this Azure account, consumption usageDetails was missing. ❌',
239+
queryingAggregateFinOpsDataForRegion: (
240+
region: string,
241+
type: string
242+
): string =>
243+
`Querying aggregate FinOps data for the ${region} region using the ${type} method...`,
244+
doneFetchingAggregateFinOpsData: (num: number): string =>
245+
`🕒 Done fetching aggregate FinOps data in ${num} 🕘`,
217246
}

0 commit comments

Comments
 (0)