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