UNPKG

@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
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>; }