29 lines
913 B
TypeScript
29 lines
913 B
TypeScript
import { mockCosts, mockTraffic } from './mock'
|
|
import { mockOn, mocked, request } from './request'
|
|
import type { CostItem, InstanceTraffic } from '@/types/api'
|
|
|
|
export function getInstanceTraffic(
|
|
cfgId: number,
|
|
instanceId: string,
|
|
days = 30,
|
|
region?: string,
|
|
): Promise<InstanceTraffic> {
|
|
if (mockOn) return mocked(mockTraffic, 800)
|
|
return request(`/oci-configs/${cfgId}/instances/${encodeURIComponent(instanceId)}/traffic`, {
|
|
query: { days, region },
|
|
})
|
|
}
|
|
|
|
export interface CostQuery {
|
|
startTime?: string
|
|
endTime?: string
|
|
granularity?: 'HOURLY' | 'DAILY' | 'MONTHLY'
|
|
queryType?: 'COST' | 'USAGE'
|
|
groupBy?: 'service' | 'skuName' | 'region' | 'compartmentName' | 'service,skuName'
|
|
}
|
|
|
|
export function getCosts(cfgId: number, query: CostQuery = {}): Promise<CostItem[]> {
|
|
if (mockOn) return mocked(mockCosts)
|
|
return request(`/oci-configs/${cfgId}/costs`, { query: { ...query } })
|
|
}
|