@cloud-carbon-footprint/aws
Version:
The core logic to get cloud usage data and estimate energy and carbon emissions from Amazon Web Services.
34 lines (33 loc) • 2.72 kB
TypeScript
import { Athena, CloudWatch, CloudWatchLogs, CostExplorer, Glue, S3 } from 'aws-sdk';
import { GetCostAndUsageRequest, GetCostAndUsageResponse, GetRightsizingRecommendationRequest, GetRightsizingRecommendationResponse } from 'aws-sdk/clients/costexplorer';
import { GetMetricDataInput, GetMetricDataOutput } from 'aws-sdk/clients/cloudwatch';
import { ListObjectsV2Output } from 'aws-sdk/clients/s3';
import { EC2ComputeOptimizerRecommendationData } from './Recommendations/ComputeOptimizer';
export declare class ServiceWrapper {
private readonly cloudWatch;
private readonly cloudWatchLogs;
private readonly costExplorer;
private readonly s3;
private readonly athena?;
private readonly glue?;
constructor(cloudWatch: CloudWatch, cloudWatchLogs: CloudWatchLogs, costExplorer: CostExplorer, s3: S3, athena?: Athena, glue?: Glue);
private getCostAndUsageResponse;
private getMetricDataResponse;
private getRightsizingRecommendationResponse;
private getAthenaQueryResults;
private checkForPartialData;
getQueryByInterval(intervalInDays: number, func: (start: Date, end: Date, params?: any) => void, start: Date, end: Date, ...args: any): Promise<Array<any>>;
getCloudWatchLogQueryResults(params: CloudWatchLogs.GetQueryResultsRequest): Promise<CloudWatchLogs.GetQueryResultsResponse>;
describeLogGroups(params: CloudWatchLogs.DescribeLogGroupsRequest): Promise<CloudWatchLogs.DescribeLogGroupsResponse>;
describeCloudWatchLogsQueries(params: CloudWatchLogs.DescribeQueriesRequest): Promise<CloudWatchLogs.DescribeQueriesResponse>;
startCloudWatchLogsQuery(params: CloudWatchLogs.StartQueryRequest): Promise<CloudWatchLogs.StartQueryResponse>;
startAthenaQueryExecution(queryParams: Athena.StartQueryExecutionInput): Promise<Athena.StartQueryExecutionOutput>;
getAthenaQueryExecution(queryExecutionInput: Athena.GetQueryExecutionInput): Promise<Athena.GetQueryExecutionOutput>;
getAthenaQueryResultSets(queryExecutionInput: Athena.GetQueryExecutionInput): Promise<Athena.GetQueryResultsOutput[]>;
getCostAndUsageResponses(params: GetCostAndUsageRequest): Promise<GetCostAndUsageResponse[]>;
getMetricDataResponses(params: GetMetricDataInput): Promise<GetMetricDataOutput[]>;
getRightsizingRecommendationsResponses(params: GetRightsizingRecommendationRequest): Promise<GetRightsizingRecommendationResponse[]>;
listBucketObjects(params: S3.Types.ListObjectsV2Request): Promise<ListObjectsV2Output>;
getComputeOptimizerRecommendationsResponse(params: S3.Types.GetObjectRequest): Promise<EC2ComputeOptimizerRecommendationData[]>;
getAthenaTableDescription(params: Glue.Types.GetTableRequest): Promise<Glue.GetTableResponse>;
}