UNPKG

js-node-aws

Version:
40 lines (39 loc) 1.79 kB
import * as AWS from 'aws-sdk'; import { Config as LoggerConfig } from 'js-node-logger'; export type AWSProviderCredentials = { accessKeyId: string; secretAccessKey: string; }; export type TimePeriod = { Start: string; End: string; }; export type Granularity = 'MONTHLY' | 'DAILY' | 'HOURLY'; export type Metrics = ('BLENDED_COST' | 'UNBLENDED_COST' | 'AMORTIZED_COST' | 'NET_AMORTIZED_COST' | 'NET_UNBLENDED_COST' | 'USAGE_QUANTITY' | 'NORMALIZED_USAGE_AMOUNT')[]; export type GroupByKey = 'AZ' | 'INSTANCE_TYPE' | 'LINKED_ACCOUNT' | 'OPERATION' | 'PURCHASE_TYPE' | 'SERVICE' | 'USAGE_TYPE' | 'PLATFORM' | 'TENANCY' | 'RECORD_TYPE' | 'LEGAL_ENTITY_NAME' | 'INVOICING_ENTITY' | 'DEPLOYMENT_OPTION' | 'DATABASE_ENGINE' | 'CACHE_ENGINE' | 'INSTANCE_TYPE_FAMILY' | 'REGION' | 'BILLING_ENTITY' | 'RESERVATION_ID' | 'SAVINGS_PLANS_TYPE' | 'SAVINGS_PLAN_ARN' | 'OPERATING_SYSTEM'; export type GroupBy = Array<{ Type: string; Key: GroupByKey; }>; export type GetCostForDateOptions = { TimePeriod: TimePeriod; Granularity: Granularity; Metrics: Metrics; GroupBy: GroupBy; NextPageToken?: string; } & AWS.CostExplorer.GetCostAndUsageRequest; declare class AWSProvider { private s3; private ce; private logger?; constructor(loggerConfig?: LoggerConfig); initializeAWSConnection(credentials: AWSProviderCredentials): Promise<void>; uploadFile(bucketName: string, key: string, fileData: Buffer): Promise<string>; getObject(bucketName: string, key: string): Promise<string>; deleteObject(bucketName: string, key: string): Promise<void>; getCostForDate(options: GetCostForDateOptions): Promise<AWS.CostExplorer.GetCostAndUsageResponse | { error?: any; message?: string; }>; } export default AWSProvider;