UNPKG

@cloud-carbon-footprint/aws

Version:

The core logic to get cloud usage data and estimate energy and carbon emissions from Amazon Web Services.

36 lines (35 loc) 3.61 kB
import { GetObjectCommandInput, ListObjectsV2CommandInput, ListObjectsV2CommandOutput, S3Client } from '@aws-sdk/client-s3'; import { CloudWatchClient, GetMetricDataCommandInput, GetMetricDataCommandOutput } from '@aws-sdk/client-cloudwatch'; import { CloudWatchLogsClient, DescribeLogGroupsCommandInput, DescribeLogGroupsCommandOutput, DescribeQueriesCommandInput, DescribeQueriesCommandOutput, GetQueryResultsCommandInput as CloudWatchLogsGetQueryResultsCommandInput, GetQueryResultsCommandOutput as CloudWatchLogsGetQueryResultsCommandOutput, StartQueryCommandInput, StartQueryCommandOutput } from '@aws-sdk/client-cloudwatch-logs'; import { CostExplorerClient, GetCostAndUsageCommandInput, GetCostAndUsageCommandOutput, GetRightsizingRecommendationCommandInput, GetRightsizingRecommendationCommandOutput } from '@aws-sdk/client-cost-explorer'; import { AthenaClient, GetQueryExecutionCommandInput, GetQueryExecutionCommandOutput, GetQueryResultsCommandInput as AthenaGetQueryResultsCommandInput, GetQueryResultsCommandOutput as AthenaGetQueryResultsCommandOutput, StartQueryExecutionCommandInput, StartQueryExecutionCommandOutput } from '@aws-sdk/client-athena'; import { GetTableCommandInput, GetTableCommandOutput, GlueClient } from '@aws-sdk/client-glue'; 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: CloudWatchClient, cloudWatchLogs: CloudWatchLogsClient, costExplorer: CostExplorerClient, s3: S3Client, athena?: AthenaClient, glue?: GlueClient); 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: CloudWatchLogsGetQueryResultsCommandInput): Promise<CloudWatchLogsGetQueryResultsCommandOutput>; describeLogGroups(params: DescribeLogGroupsCommandInput): Promise<DescribeLogGroupsCommandOutput>; describeCloudWatchLogsQueries(params: DescribeQueriesCommandInput): Promise<DescribeQueriesCommandOutput>; startCloudWatchLogsQuery(params: StartQueryCommandInput): Promise<StartQueryCommandOutput>; startAthenaQueryExecution(queryParams: StartQueryExecutionCommandInput): Promise<StartQueryExecutionCommandOutput>; getAthenaQueryExecution(queryExecutionInput: GetQueryExecutionCommandInput): Promise<GetQueryExecutionCommandOutput>; getAthenaQueryResultSets(queryExecutionInput: AthenaGetQueryResultsCommandInput): Promise<AthenaGetQueryResultsCommandOutput[]>; getCostAndUsageResponses(params: GetCostAndUsageCommandInput): Promise<GetCostAndUsageCommandOutput[]>; getMetricDataResponses(params: GetMetricDataCommandInput): Promise<GetMetricDataCommandOutput[]>; getRightsizingRecommendationsResponses(params: GetRightsizingRecommendationCommandInput): Promise<GetRightsizingRecommendationCommandOutput[]>; listBucketObjects(params: ListObjectsV2CommandInput): Promise<ListObjectsV2CommandOutput>; getComputeOptimizerRecommendationsResponse(params: GetObjectCommandInput): Promise<EC2ComputeOptimizerRecommendationData[]>; getAthenaTableDescription(params: GetTableCommandInput): Promise<GetTableCommandOutput>; }