oci-pricing-mcp 1.2.2 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -201
- package/README.md +101 -247
- package/dist/data/fetcher.d.ts +76 -1
- package/dist/data/fetcher.d.ts.map +1 -1
- package/dist/data/fetcher.js +204 -0
- package/dist/data/fetcher.js.map +1 -1
- package/dist/data/pricing-data.json +7169 -3699
- package/dist/index.js +350 -0
- package/dist/index.js.map +1 -1
- package/dist/tools/multicloud.d.ts +183 -0
- package/dist/tools/multicloud.d.ts.map +1 -0
- package/dist/tools/multicloud.js +360 -0
- package/dist/tools/multicloud.js.map +1 -0
- package/dist/tools/services.d.ts +221 -0
- package/dist/tools/services.d.ts.map +1 -0
- package/dist/tools/services.js +385 -0
- package/dist/tools/services.js.map +1 -0
- package/dist/types.d.ts +241 -7
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,385 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OCI Services Tools
|
|
3
|
+
* Tools for AI/ML, Observability, Integration, Security, Analytics, Developer, Media, VMware, Edge, and Governance services
|
|
4
|
+
*/
|
|
5
|
+
import { getAIMLPricing, getObservabilityPricing, getIntegrationPricing, getSecurityPricing, getAnalyticsPricing, getDeveloperPricing, getMediaPricing, getVMwarePricing, getEdgePricing, getGovernancePricing, getExadataPricing, getCachePricing, getDisasterRecoveryPricing, getAdditionalServicesPricing, getServiceCategoryCounts, getLastUpdated } from '../data/fetcher.js';
|
|
6
|
+
export function listAIMLServices(params = {}) {
|
|
7
|
+
let pricing = getAIMLPricing(params.type);
|
|
8
|
+
// Filter by model if specified
|
|
9
|
+
if (params.model) {
|
|
10
|
+
const modelLower = params.model.toLowerCase();
|
|
11
|
+
pricing = pricing.filter(p => p.model?.toLowerCase().includes(modelLower) ||
|
|
12
|
+
p.name.toLowerCase().includes(modelLower));
|
|
13
|
+
}
|
|
14
|
+
// Group by type
|
|
15
|
+
const byType = {};
|
|
16
|
+
pricing.forEach(p => {
|
|
17
|
+
if (!byType[p.type])
|
|
18
|
+
byType[p.type] = [];
|
|
19
|
+
byType[p.type].push(p);
|
|
20
|
+
});
|
|
21
|
+
return {
|
|
22
|
+
services: pricing,
|
|
23
|
+
totalCount: pricing.length,
|
|
24
|
+
byType: Object.entries(byType).map(([type, items]) => ({
|
|
25
|
+
type,
|
|
26
|
+
count: items.length,
|
|
27
|
+
items: items.slice(0, 5) // Show first 5 per type
|
|
28
|
+
})),
|
|
29
|
+
lastUpdated: getLastUpdated(),
|
|
30
|
+
availableTypes: [...new Set(pricing.map(p => p.type))],
|
|
31
|
+
availableModels: [...new Set(pricing.filter(p => p.model).map(p => p.model))],
|
|
32
|
+
notes: [
|
|
33
|
+
'Generative AI supports Cohere, Meta Llama, and xAI Grok models',
|
|
34
|
+
'Pricing varies by model size and deployment type (on-demand vs dedicated)',
|
|
35
|
+
'Vision, Speech, Language, and Document Understanding use transaction-based pricing'
|
|
36
|
+
]
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
export function listObservabilityServices(params = {}) {
|
|
40
|
+
const pricing = getObservabilityPricing(params.type);
|
|
41
|
+
// Group by type
|
|
42
|
+
const byType = {};
|
|
43
|
+
pricing.forEach(p => {
|
|
44
|
+
if (!byType[p.type])
|
|
45
|
+
byType[p.type] = [];
|
|
46
|
+
byType[p.type].push(p);
|
|
47
|
+
});
|
|
48
|
+
return {
|
|
49
|
+
services: pricing,
|
|
50
|
+
totalCount: pricing.length,
|
|
51
|
+
byType: Object.entries(byType).map(([type, items]) => ({
|
|
52
|
+
type,
|
|
53
|
+
count: items.length,
|
|
54
|
+
items
|
|
55
|
+
})),
|
|
56
|
+
lastUpdated: getLastUpdated(),
|
|
57
|
+
availableTypes: [...new Set(pricing.map(p => p.type))],
|
|
58
|
+
freeAllowances: [
|
|
59
|
+
{ service: 'Logging', allowance: '10 GB/month ingest' },
|
|
60
|
+
{ service: 'Monitoring', allowance: '500 million datapoints/month' },
|
|
61
|
+
{ service: 'Notifications', allowance: '1 million notifications/month' }
|
|
62
|
+
],
|
|
63
|
+
notes: [
|
|
64
|
+
'Many observability services include free tier allowances',
|
|
65
|
+
'APM provides end-to-end application tracing',
|
|
66
|
+
'Log Analytics enables powerful log search and analysis'
|
|
67
|
+
]
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
export function listIntegrationServices(params = {}) {
|
|
71
|
+
const pricing = getIntegrationPricing(params.type);
|
|
72
|
+
// Group by type
|
|
73
|
+
const byType = {};
|
|
74
|
+
pricing.forEach(p => {
|
|
75
|
+
if (!byType[p.type])
|
|
76
|
+
byType[p.type] = [];
|
|
77
|
+
byType[p.type].push(p);
|
|
78
|
+
});
|
|
79
|
+
return {
|
|
80
|
+
services: pricing,
|
|
81
|
+
totalCount: pricing.length,
|
|
82
|
+
byType: Object.entries(byType).map(([type, items]) => ({
|
|
83
|
+
type,
|
|
84
|
+
count: items.length,
|
|
85
|
+
items
|
|
86
|
+
})),
|
|
87
|
+
lastUpdated: getLastUpdated(),
|
|
88
|
+
availableTypes: [...new Set(pricing.map(p => p.type))],
|
|
89
|
+
notes: [
|
|
90
|
+
'OCI Integration Cloud (OIC) provides pre-built adapters for SaaS and on-premises apps',
|
|
91
|
+
'GoldenGate enables real-time data replication and streaming',
|
|
92
|
+
'Streaming is compatible with Apache Kafka APIs'
|
|
93
|
+
]
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
export function listSecurityServices(params = {}) {
|
|
97
|
+
const pricing = getSecurityPricing(params.type);
|
|
98
|
+
// Group by type
|
|
99
|
+
const byType = {};
|
|
100
|
+
pricing.forEach(p => {
|
|
101
|
+
if (!byType[p.type])
|
|
102
|
+
byType[p.type] = [];
|
|
103
|
+
byType[p.type].push(p);
|
|
104
|
+
});
|
|
105
|
+
return {
|
|
106
|
+
services: pricing,
|
|
107
|
+
totalCount: pricing.length,
|
|
108
|
+
byType: Object.entries(byType).map(([type, items]) => ({
|
|
109
|
+
type,
|
|
110
|
+
count: items.length,
|
|
111
|
+
items
|
|
112
|
+
})),
|
|
113
|
+
lastUpdated: getLastUpdated(),
|
|
114
|
+
availableTypes: [...new Set(pricing.map(p => p.type))],
|
|
115
|
+
freeServices: [
|
|
116
|
+
'Cloud Guard - threat detection (free)',
|
|
117
|
+
'Vault - 20 key versions free',
|
|
118
|
+
'Bastion - free service'
|
|
119
|
+
],
|
|
120
|
+
notes: [
|
|
121
|
+
'Data Safe provides database security assessment and monitoring',
|
|
122
|
+
'Cloud Guard detects security threats across your tenancy',
|
|
123
|
+
'WAF protects web applications from attacks'
|
|
124
|
+
]
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
export function listAnalyticsServices(params = {}) {
|
|
128
|
+
const pricing = getAnalyticsPricing(params.type);
|
|
129
|
+
// Group by type
|
|
130
|
+
const byType = {};
|
|
131
|
+
pricing.forEach(p => {
|
|
132
|
+
if (!byType[p.type])
|
|
133
|
+
byType[p.type] = [];
|
|
134
|
+
byType[p.type].push(p);
|
|
135
|
+
});
|
|
136
|
+
return {
|
|
137
|
+
services: pricing,
|
|
138
|
+
totalCount: pricing.length,
|
|
139
|
+
byType: Object.entries(byType).map(([type, items]) => ({
|
|
140
|
+
type,
|
|
141
|
+
count: items.length,
|
|
142
|
+
items
|
|
143
|
+
})),
|
|
144
|
+
lastUpdated: getLastUpdated(),
|
|
145
|
+
availableTypes: [...new Set(pricing.map(p => p.type))],
|
|
146
|
+
notes: [
|
|
147
|
+
'Analytics Cloud provides enterprise BI and visualization',
|
|
148
|
+
'Big Data Service runs Apache Spark and Hadoop workloads',
|
|
149
|
+
'Data Flow provides serverless Spark execution'
|
|
150
|
+
]
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
export function listDeveloperServices(params = {}) {
|
|
154
|
+
const pricing = getDeveloperPricing(params.type);
|
|
155
|
+
// Group by type
|
|
156
|
+
const byType = {};
|
|
157
|
+
pricing.forEach(p => {
|
|
158
|
+
if (!byType[p.type])
|
|
159
|
+
byType[p.type] = [];
|
|
160
|
+
byType[p.type].push(p);
|
|
161
|
+
});
|
|
162
|
+
return {
|
|
163
|
+
services: pricing,
|
|
164
|
+
totalCount: pricing.length,
|
|
165
|
+
byType: Object.entries(byType).map(([type, items]) => ({
|
|
166
|
+
type,
|
|
167
|
+
count: items.length,
|
|
168
|
+
items
|
|
169
|
+
})),
|
|
170
|
+
lastUpdated: getLastUpdated(),
|
|
171
|
+
availableTypes: [...new Set(pricing.map(p => p.type))],
|
|
172
|
+
freeServices: [
|
|
173
|
+
'Functions - 2 million invocations/month free',
|
|
174
|
+
'APEX - included with Autonomous Database',
|
|
175
|
+
'Resource Manager (Terraform) - free'
|
|
176
|
+
],
|
|
177
|
+
notes: [
|
|
178
|
+
'Functions provides serverless compute with pay-per-execution',
|
|
179
|
+
'Container Instances run containers without managing infrastructure',
|
|
180
|
+
'API Gateway manages and secures API traffic'
|
|
181
|
+
]
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
export function listMediaServices(params = {}) {
|
|
185
|
+
const pricing = getMediaPricing(params.type);
|
|
186
|
+
// Group by type
|
|
187
|
+
const byType = {};
|
|
188
|
+
pricing.forEach(p => {
|
|
189
|
+
if (!byType[p.type])
|
|
190
|
+
byType[p.type] = [];
|
|
191
|
+
byType[p.type].push(p);
|
|
192
|
+
});
|
|
193
|
+
return {
|
|
194
|
+
services: pricing,
|
|
195
|
+
totalCount: pricing.length,
|
|
196
|
+
byType: Object.entries(byType).map(([type, items]) => ({
|
|
197
|
+
type,
|
|
198
|
+
count: items.length,
|
|
199
|
+
sample: items.slice(0, 10) // Media has many items, show sample
|
|
200
|
+
})),
|
|
201
|
+
lastUpdated: getLastUpdated(),
|
|
202
|
+
availableTypes: [...new Set(pricing.map(p => p.type))],
|
|
203
|
+
notes: [
|
|
204
|
+
'Media Flow provides video transcoding and processing pipelines',
|
|
205
|
+
'Media Streams enables live and on-demand video streaming',
|
|
206
|
+
'Pricing based on minutes processed and output resolution'
|
|
207
|
+
]
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
// ============================================
|
|
211
|
+
// VMware Tools
|
|
212
|
+
// ============================================
|
|
213
|
+
export function listVMwareServices() {
|
|
214
|
+
const pricing = getVMwarePricing();
|
|
215
|
+
return {
|
|
216
|
+
services: pricing,
|
|
217
|
+
totalCount: pricing.length,
|
|
218
|
+
lastUpdated: getLastUpdated(),
|
|
219
|
+
notes: [
|
|
220
|
+
'Oracle Cloud VMware Solution (OCVS) runs VMware workloads natively',
|
|
221
|
+
'Pricing is per-host with different configurations available',
|
|
222
|
+
'Includes VMware vSphere, vSAN, and NSX licensing'
|
|
223
|
+
]
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
export function listEdgeServices(params = {}) {
|
|
227
|
+
const pricing = getEdgePricing(params.type);
|
|
228
|
+
return {
|
|
229
|
+
services: pricing,
|
|
230
|
+
totalCount: pricing.length,
|
|
231
|
+
lastUpdated: getLastUpdated(),
|
|
232
|
+
availableTypes: [...new Set(pricing.map(p => p.type))],
|
|
233
|
+
freeAllowances: [
|
|
234
|
+
{ service: 'DNS', allowance: '1 million queries/month' },
|
|
235
|
+
{ service: 'Email Delivery', allowance: '3,000 emails/month' },
|
|
236
|
+
{ service: 'Health Checks', allowance: '1 million checks/month' }
|
|
237
|
+
],
|
|
238
|
+
notes: [
|
|
239
|
+
'DNS provides global low-latency name resolution',
|
|
240
|
+
'Email Delivery is a scalable outbound email service',
|
|
241
|
+
'Health Checks monitor endpoint availability'
|
|
242
|
+
]
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
export function listGovernanceServices(params = {}) {
|
|
246
|
+
const pricing = getGovernancePricing(params.type);
|
|
247
|
+
return {
|
|
248
|
+
services: pricing,
|
|
249
|
+
totalCount: pricing.length,
|
|
250
|
+
lastUpdated: getLastUpdated(),
|
|
251
|
+
availableTypes: [...new Set(pricing.map(p => p.type))],
|
|
252
|
+
notes: [
|
|
253
|
+
'Access Governance manages identity lifecycle and access reviews',
|
|
254
|
+
'Fleet Application Management monitors and patches applications',
|
|
255
|
+
'License Manager tracks Oracle license usage'
|
|
256
|
+
]
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
export function listExadataServices(params = {}) {
|
|
260
|
+
const pricing = getExadataPricing(params.type);
|
|
261
|
+
// Group by type
|
|
262
|
+
const byType = {};
|
|
263
|
+
pricing.forEach(p => {
|
|
264
|
+
if (!byType[p.type])
|
|
265
|
+
byType[p.type] = [];
|
|
266
|
+
byType[p.type].push(p);
|
|
267
|
+
});
|
|
268
|
+
return {
|
|
269
|
+
services: pricing,
|
|
270
|
+
totalCount: pricing.length,
|
|
271
|
+
byType: Object.entries(byType).map(([type, items]) => ({
|
|
272
|
+
type,
|
|
273
|
+
count: items.length,
|
|
274
|
+
items
|
|
275
|
+
})),
|
|
276
|
+
lastUpdated: getLastUpdated(),
|
|
277
|
+
availableTypes: [...new Set(pricing.map(p => p.type))],
|
|
278
|
+
notes: [
|
|
279
|
+
'Exadata provides the highest performance Oracle Database platform',
|
|
280
|
+
'Exascale is the latest generation with elastic scaling',
|
|
281
|
+
'BYOL pricing available for existing Oracle license holders',
|
|
282
|
+
'Developer tier is free for development and testing'
|
|
283
|
+
]
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
// ============================================
|
|
287
|
+
// Cache (Redis) Tools
|
|
288
|
+
// ============================================
|
|
289
|
+
export function listCacheServices() {
|
|
290
|
+
const pricing = getCachePricing();
|
|
291
|
+
return {
|
|
292
|
+
services: pricing,
|
|
293
|
+
totalCount: pricing.length,
|
|
294
|
+
lastUpdated: getLastUpdated(),
|
|
295
|
+
pricingTiers: [
|
|
296
|
+
{ tier: 'low', description: 'Up to 10 GB per node', pricePerGBHour: 0.0194 },
|
|
297
|
+
{ tier: 'high', description: 'Over 10 GB per node', pricePerGBHour: 0.0136 }
|
|
298
|
+
],
|
|
299
|
+
notes: [
|
|
300
|
+
'OCI Cache with Redis is a managed Redis-compatible caching service',
|
|
301
|
+
'High memory tier offers better per-GB pricing for larger caches',
|
|
302
|
+
'Fully managed with automatic failover and patching'
|
|
303
|
+
]
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
// ============================================
|
|
307
|
+
// Disaster Recovery Tools
|
|
308
|
+
// ============================================
|
|
309
|
+
export function listDisasterRecoveryServices() {
|
|
310
|
+
const pricing = getDisasterRecoveryPricing();
|
|
311
|
+
return {
|
|
312
|
+
services: pricing,
|
|
313
|
+
totalCount: pricing.length,
|
|
314
|
+
lastUpdated: getLastUpdated(),
|
|
315
|
+
notes: [
|
|
316
|
+
'Full Stack DR automates disaster recovery for entire application stacks',
|
|
317
|
+
'Supports Oracle databases, middleware, and applications',
|
|
318
|
+
'Pay only for DR protection, not standby compute resources'
|
|
319
|
+
]
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
export function listAdditionalServices(params = {}) {
|
|
323
|
+
const pricing = getAdditionalServicesPricing(params.type);
|
|
324
|
+
// Group by type
|
|
325
|
+
const byType = {};
|
|
326
|
+
pricing.forEach(p => {
|
|
327
|
+
if (!byType[p.type])
|
|
328
|
+
byType[p.type] = [];
|
|
329
|
+
byType[p.type].push(p);
|
|
330
|
+
});
|
|
331
|
+
return {
|
|
332
|
+
services: pricing,
|
|
333
|
+
totalCount: pricing.length,
|
|
334
|
+
byType: Object.entries(byType).map(([type, items]) => ({
|
|
335
|
+
type,
|
|
336
|
+
count: items.length,
|
|
337
|
+
items
|
|
338
|
+
})),
|
|
339
|
+
lastUpdated: getLastUpdated(),
|
|
340
|
+
availableTypes: [...new Set(pricing.map(p => p.type))],
|
|
341
|
+
serviceDescriptions: {
|
|
342
|
+
opensearch: 'Managed OpenSearch for log analytics and search',
|
|
343
|
+
'secure-desktops': 'Virtual desktop infrastructure (VDI)',
|
|
344
|
+
blockchain: 'Enterprise blockchain platform',
|
|
345
|
+
timesten: 'In-memory database for Kubernetes',
|
|
346
|
+
batch: 'Managed batch processing (free service)',
|
|
347
|
+
'recovery-service': 'Automated database backup and recovery',
|
|
348
|
+
'zfs-storage': 'Enterprise ZFS storage appliance',
|
|
349
|
+
'lustre-storage': 'High-performance parallel filesystem',
|
|
350
|
+
'digital-assistant': 'AI-powered chatbot service'
|
|
351
|
+
},
|
|
352
|
+
notes: [
|
|
353
|
+
'OCI Batch is free - you only pay for underlying compute',
|
|
354
|
+
'TimesTen provides microsecond-latency in-memory processing',
|
|
355
|
+
'Lustre storage is ideal for HPC and AI/ML workloads'
|
|
356
|
+
]
|
|
357
|
+
};
|
|
358
|
+
}
|
|
359
|
+
// ============================================
|
|
360
|
+
// Summary Tool
|
|
361
|
+
// ============================================
|
|
362
|
+
export function getServicesSummary() {
|
|
363
|
+
const counts = getServiceCategoryCounts();
|
|
364
|
+
const total = Object.values(counts).reduce((a, b) => a + b, 0);
|
|
365
|
+
return {
|
|
366
|
+
categories: counts,
|
|
367
|
+
totalPricingItems: total,
|
|
368
|
+
lastUpdated: getLastUpdated(),
|
|
369
|
+
coverage: {
|
|
370
|
+
core: ['compute', 'storage', 'database', 'networking', 'kubernetes'],
|
|
371
|
+
aiMl: ['generative-ai', 'vision', 'speech', 'language', 'document-understanding'],
|
|
372
|
+
operations: ['observability', 'security', 'governance', 'disaster-recovery'],
|
|
373
|
+
platform: ['integration', 'analytics', 'developer', 'media', 'vmware', 'edge'],
|
|
374
|
+
enterprise: ['exadata', 'blockchain', 'timesten'],
|
|
375
|
+
infrastructure: ['cache', 'zfs-storage', 'lustre-storage', 'opensearch', 'secure-desktops'],
|
|
376
|
+
multicloud: ['database@azure', 'database@aws', 'database@gcp']
|
|
377
|
+
},
|
|
378
|
+
notes: [
|
|
379
|
+
'Pricing data sourced from Oracle Cloud Infrastructure pricing API',
|
|
380
|
+
'All prices in USD, Pay-As-You-Go rates',
|
|
381
|
+
'Many services include free tier allowances'
|
|
382
|
+
]
|
|
383
|
+
};
|
|
384
|
+
}
|
|
385
|
+
//# sourceMappingURL=services.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/tools/services.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,6 +1,37 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* OCI Pricing MCP Server - Type Definitions
|
|
3
3
|
*/
|
|
4
|
+
export type MulticloudProvider = 'azure' | 'aws' | 'gcp';
|
|
5
|
+
export type MulticloudDatabaseType = 'autonomous-serverless' | 'autonomous-dedicated' | 'exadata' | 'exascale' | 'base-db';
|
|
6
|
+
export interface MulticloudDatabaseAvailability {
|
|
7
|
+
databaseType: MulticloudDatabaseType;
|
|
8
|
+
displayName: string;
|
|
9
|
+
azure: boolean;
|
|
10
|
+
aws: boolean;
|
|
11
|
+
gcp: boolean;
|
|
12
|
+
notes?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface MulticloudDatabasePricing {
|
|
15
|
+
databaseType: MulticloudDatabaseType;
|
|
16
|
+
provider: MulticloudProvider;
|
|
17
|
+
available: boolean;
|
|
18
|
+
pricingModel: 'marketplace' | 'private-offer' | 'price-parity-estimate';
|
|
19
|
+
ecpuPrice?: number;
|
|
20
|
+
ocpuPrice?: number;
|
|
21
|
+
storagePrice?: number;
|
|
22
|
+
licenseIncludedPrice?: number;
|
|
23
|
+
byolPrice?: number;
|
|
24
|
+
licenseIncluded: boolean;
|
|
25
|
+
byolAvailable: boolean;
|
|
26
|
+
billingNote: string;
|
|
27
|
+
marketplaceUrl?: string;
|
|
28
|
+
}
|
|
29
|
+
export interface MulticloudData {
|
|
30
|
+
availability: MulticloudDatabaseAvailability[];
|
|
31
|
+
pricing: MulticloudDatabasePricing[];
|
|
32
|
+
lastUpdated: string;
|
|
33
|
+
notes: string[];
|
|
34
|
+
}
|
|
4
35
|
export type OCIRegion = 'us-ashburn-1' | 'us-phoenix-1' | 'us-sanjose-1' | 'us-chicago-1' | 'ca-montreal-1' | 'ca-toronto-1' | 'eu-frankfurt-1' | 'eu-amsterdam-1' | 'eu-zurich-1' | 'eu-madrid-1' | 'eu-marseille-1' | 'eu-milan-1' | 'eu-paris-1' | 'eu-stockholm-1' | 'uk-london-1' | 'uk-cardiff-1' | 'ap-tokyo-1' | 'ap-osaka-1' | 'ap-seoul-1' | 'ap-chuncheon-1' | 'ap-mumbai-1' | 'ap-hyderabad-1' | 'ap-singapore-1' | 'ap-sydney-1' | 'ap-melbourne-1' | 'sa-saopaulo-1' | 'sa-santiago-1' | 'sa-vinhedo-1' | 'me-jeddah-1' | 'me-dubai-1' | 'af-johannesburg-1' | 'il-jerusalem-1';
|
|
5
36
|
export type OCIServiceCategory = 'compute' | 'storage' | 'database' | 'networking' | 'kubernetes' | 'analytics' | 'ai-ml' | 'security' | 'observability' | 'integration' | 'developer-services';
|
|
6
37
|
export type PricingUnit = 'OCPU per hour' | 'GB per month' | 'GB per hour' | 'instance per hour' | 'request' | 'GB transferred' | 'unit per hour' | 'node per hour';
|
|
@@ -57,6 +88,201 @@ export interface KubernetesPricing extends PricingItem {
|
|
|
57
88
|
clusterManagementFee: number;
|
|
58
89
|
nodePoolFee?: number;
|
|
59
90
|
}
|
|
91
|
+
export type AIMLServiceType = 'generative-ai' | 'generative-ai-agents' | 'vision' | 'speech' | 'language' | 'document-understanding' | 'digital-assistant' | 'anomaly-detection' | 'forecasting' | 'data-labeling';
|
|
92
|
+
export interface AIMLPricing {
|
|
93
|
+
service: 'ai-ml';
|
|
94
|
+
type: AIMLServiceType;
|
|
95
|
+
name: string;
|
|
96
|
+
description: string;
|
|
97
|
+
model?: string;
|
|
98
|
+
pricingTier: 'on-demand' | 'dedicated' | 'committed';
|
|
99
|
+
unit: string;
|
|
100
|
+
pricePerUnit: number;
|
|
101
|
+
currency: 'USD';
|
|
102
|
+
partNumber?: string;
|
|
103
|
+
notes?: string;
|
|
104
|
+
}
|
|
105
|
+
export type ObservabilityServiceType = 'apm' | 'logging' | 'log-analytics' | 'monitoring' | 'notifications' | 'ops-insights' | 'stack-monitoring' | 'service-connector';
|
|
106
|
+
export interface ObservabilityPricing {
|
|
107
|
+
service: 'observability';
|
|
108
|
+
type: ObservabilityServiceType;
|
|
109
|
+
name: string;
|
|
110
|
+
description: string;
|
|
111
|
+
unit: string;
|
|
112
|
+
pricePerUnit: number;
|
|
113
|
+
freeAllowance?: number;
|
|
114
|
+
freeAllowanceUnit?: string;
|
|
115
|
+
currency: 'USD';
|
|
116
|
+
partNumber?: string;
|
|
117
|
+
notes?: string;
|
|
118
|
+
}
|
|
119
|
+
export type IntegrationServiceType = 'integration-cloud' | 'goldengate' | 'data-integration' | 'streaming' | 'queue' | 'events' | 'api-gateway';
|
|
120
|
+
export interface IntegrationPricing {
|
|
121
|
+
service: 'integration';
|
|
122
|
+
type: IntegrationServiceType;
|
|
123
|
+
name: string;
|
|
124
|
+
description: string;
|
|
125
|
+
unit: string;
|
|
126
|
+
pricePerUnit: number;
|
|
127
|
+
currency: 'USD';
|
|
128
|
+
partNumber?: string;
|
|
129
|
+
notes?: string;
|
|
130
|
+
}
|
|
131
|
+
export type SecurityServiceType = 'data-safe' | 'cloud-guard' | 'vault' | 'key-management' | 'waf' | 'network-firewall' | 'vulnerability-scanning' | 'bastion' | 'certificates';
|
|
132
|
+
export interface SecurityPricing {
|
|
133
|
+
service: 'security';
|
|
134
|
+
type: SecurityServiceType;
|
|
135
|
+
name: string;
|
|
136
|
+
description: string;
|
|
137
|
+
unit: string;
|
|
138
|
+
pricePerUnit: number;
|
|
139
|
+
freeAllowance?: number;
|
|
140
|
+
freeAllowanceUnit?: string;
|
|
141
|
+
currency: 'USD';
|
|
142
|
+
partNumber?: string;
|
|
143
|
+
notes?: string;
|
|
144
|
+
}
|
|
145
|
+
export type AnalyticsServiceType = 'analytics-cloud' | 'big-data' | 'data-flow' | 'data-catalog' | 'data-science';
|
|
146
|
+
export interface AnalyticsPricing {
|
|
147
|
+
service: 'analytics';
|
|
148
|
+
type: AnalyticsServiceType;
|
|
149
|
+
name: string;
|
|
150
|
+
description: string;
|
|
151
|
+
unit: string;
|
|
152
|
+
pricePerUnit: number;
|
|
153
|
+
currency: 'USD';
|
|
154
|
+
partNumber?: string;
|
|
155
|
+
notes?: string;
|
|
156
|
+
}
|
|
157
|
+
export type DeveloperServiceType = 'functions' | 'container-instances' | 'api-gateway' | 'apex' | 'devops' | 'resource-manager' | 'visual-builder';
|
|
158
|
+
export interface DeveloperPricing {
|
|
159
|
+
service: 'developer';
|
|
160
|
+
type: DeveloperServiceType;
|
|
161
|
+
name: string;
|
|
162
|
+
description: string;
|
|
163
|
+
unit: string;
|
|
164
|
+
pricePerUnit: number;
|
|
165
|
+
freeAllowance?: number;
|
|
166
|
+
freeAllowanceUnit?: string;
|
|
167
|
+
currency: 'USD';
|
|
168
|
+
partNumber?: string;
|
|
169
|
+
notes?: string;
|
|
170
|
+
}
|
|
171
|
+
export type MediaServiceType = 'media-flow' | 'media-streams';
|
|
172
|
+
export interface MediaPricing {
|
|
173
|
+
service: 'media';
|
|
174
|
+
type: MediaServiceType;
|
|
175
|
+
name: string;
|
|
176
|
+
description: string;
|
|
177
|
+
unit: string;
|
|
178
|
+
pricePerUnit: number;
|
|
179
|
+
currency: 'USD';
|
|
180
|
+
partNumber?: string;
|
|
181
|
+
notes?: string;
|
|
182
|
+
}
|
|
183
|
+
export type VMwareServiceType = 'ocvs';
|
|
184
|
+
export interface VMwarePricing {
|
|
185
|
+
service: 'vmware';
|
|
186
|
+
type: VMwareServiceType;
|
|
187
|
+
name: string;
|
|
188
|
+
description: string;
|
|
189
|
+
hostType: string;
|
|
190
|
+
unit: string;
|
|
191
|
+
pricePerUnit: number;
|
|
192
|
+
currency: 'USD';
|
|
193
|
+
partNumber?: string;
|
|
194
|
+
notes?: string;
|
|
195
|
+
}
|
|
196
|
+
export interface AdditionalDatabasePricing {
|
|
197
|
+
service: 'database';
|
|
198
|
+
type: string;
|
|
199
|
+
name: string;
|
|
200
|
+
description: string;
|
|
201
|
+
databaseEngine: 'mysql' | 'postgresql' | 'nosql' | 'redis' | 'timesten' | 'other';
|
|
202
|
+
unit: string;
|
|
203
|
+
pricePerUnit: number;
|
|
204
|
+
licenseIncluded?: boolean;
|
|
205
|
+
currency: 'USD';
|
|
206
|
+
partNumber?: string;
|
|
207
|
+
notes?: string;
|
|
208
|
+
}
|
|
209
|
+
export type EdgeServiceType = 'dns' | 'email-delivery' | 'web-application-acceleration' | 'healthchecks';
|
|
210
|
+
export interface EdgePricing {
|
|
211
|
+
service: 'edge';
|
|
212
|
+
type: EdgeServiceType;
|
|
213
|
+
name: string;
|
|
214
|
+
description: string;
|
|
215
|
+
unit: string;
|
|
216
|
+
pricePerUnit: number;
|
|
217
|
+
freeAllowance?: number;
|
|
218
|
+
freeAllowanceUnit?: string;
|
|
219
|
+
currency: 'USD';
|
|
220
|
+
partNumber?: string;
|
|
221
|
+
notes?: string;
|
|
222
|
+
}
|
|
223
|
+
export type GovernanceServiceType = 'access-governance' | 'fleet-management' | 'license-manager';
|
|
224
|
+
export interface GovernancePricing {
|
|
225
|
+
service: 'governance';
|
|
226
|
+
type: GovernanceServiceType;
|
|
227
|
+
name: string;
|
|
228
|
+
description: string;
|
|
229
|
+
unit: string;
|
|
230
|
+
pricePerUnit: number;
|
|
231
|
+
currency: 'USD';
|
|
232
|
+
partNumber?: string;
|
|
233
|
+
notes?: string;
|
|
234
|
+
}
|
|
235
|
+
export type ExadataServiceType = 'exascale-ecpu' | 'exascale-ocpu' | 'exascale-storage' | 'exascale-infrastructure' | 'dedicated-ecpu' | 'dedicated-ocpu';
|
|
236
|
+
export interface ExadataPricing {
|
|
237
|
+
service: 'exadata';
|
|
238
|
+
type: ExadataServiceType;
|
|
239
|
+
name: string;
|
|
240
|
+
description: string;
|
|
241
|
+
unit: string;
|
|
242
|
+
pricePerUnit: number;
|
|
243
|
+
licenseIncluded?: boolean;
|
|
244
|
+
byol?: boolean;
|
|
245
|
+
currency: 'USD';
|
|
246
|
+
partNumber?: string;
|
|
247
|
+
notes?: string;
|
|
248
|
+
}
|
|
249
|
+
export interface CachePricing {
|
|
250
|
+
service: 'cache';
|
|
251
|
+
type: 'redis';
|
|
252
|
+
name: string;
|
|
253
|
+
description: string;
|
|
254
|
+
memoryTier: 'low' | 'high';
|
|
255
|
+
unit: string;
|
|
256
|
+
pricePerUnit: number;
|
|
257
|
+
currency: 'USD';
|
|
258
|
+
partNumber?: string;
|
|
259
|
+
notes?: string;
|
|
260
|
+
}
|
|
261
|
+
export interface DisasterRecoveryPricing {
|
|
262
|
+
service: 'disaster-recovery';
|
|
263
|
+
type: 'full-stack-dr';
|
|
264
|
+
name: string;
|
|
265
|
+
description: string;
|
|
266
|
+
unit: string;
|
|
267
|
+
pricePerUnit: number;
|
|
268
|
+
currency: 'USD';
|
|
269
|
+
partNumber?: string;
|
|
270
|
+
notes?: string;
|
|
271
|
+
}
|
|
272
|
+
export type AdditionalServiceType = 'opensearch' | 'secure-desktops' | 'blockchain' | 'timesten' | 'batch' | 'recovery-service' | 'zfs-storage' | 'lustre-storage' | 'digital-assistant';
|
|
273
|
+
export interface AdditionalServicePricing {
|
|
274
|
+
service: 'additional';
|
|
275
|
+
type: AdditionalServiceType;
|
|
276
|
+
name: string;
|
|
277
|
+
description: string;
|
|
278
|
+
unit: string;
|
|
279
|
+
pricePerUnit: number;
|
|
280
|
+
licenseIncluded?: boolean;
|
|
281
|
+
byol?: boolean;
|
|
282
|
+
currency: 'USD';
|
|
283
|
+
partNumber?: string;
|
|
284
|
+
notes?: string;
|
|
285
|
+
}
|
|
60
286
|
export interface CostEstimateInput {
|
|
61
287
|
compute?: {
|
|
62
288
|
shape: string;
|
|
@@ -146,17 +372,25 @@ export interface OCIPricingData {
|
|
|
146
372
|
database: DatabasePricing[];
|
|
147
373
|
networking: NetworkingPricing[];
|
|
148
374
|
kubernetes: KubernetesPricing[];
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
security?:
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
375
|
+
aiMl?: AIMLPricing[];
|
|
376
|
+
observability?: ObservabilityPricing[];
|
|
377
|
+
integration?: IntegrationPricing[];
|
|
378
|
+
security?: SecurityPricing[];
|
|
379
|
+
analytics?: AnalyticsPricing[];
|
|
380
|
+
developer?: DeveloperPricing[];
|
|
381
|
+
media?: MediaPricing[];
|
|
382
|
+
vmware?: VMwarePricing[];
|
|
383
|
+
edge?: EdgePricing[];
|
|
384
|
+
governance?: GovernancePricing[];
|
|
385
|
+
exadata?: ExadataPricing[];
|
|
386
|
+
cache?: CachePricing[];
|
|
387
|
+
disasterRecovery?: DisasterRecoveryPricing[];
|
|
388
|
+
additionalServices?: AdditionalServicePricing[];
|
|
156
389
|
products: APIProduct[];
|
|
157
390
|
categories: string[];
|
|
158
391
|
regions: RegionInfo[];
|
|
159
392
|
freeTier: Record<string, unknown>;
|
|
160
393
|
services: ServiceCatalogEntry[];
|
|
394
|
+
multicloud?: MulticloudData;
|
|
161
395
|
}
|
|
162
396
|
//# sourceMappingURL=types.d.ts.map
|