js-node-aws
Version:
NodeJS AWS Provider
40 lines (39 loc) • 1.79 kB
TypeScript
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;