UNPKG

@csermet/multiprovider

Version:

cloud-graph provider plugin for AWS used to fetch AWS cloud data.

178 lines (177 loc) 5.38 kB
import CloudGraph, { Opts, ProviderData } from '@cloudgraph/sdk'; import { DocumentNode } from 'graphql'; import { Account } from './base'; export declare const enums: { services: { acm: string; alb: string; apiGatewayDomainName: string; apiGatewayHttpApi: string; apiGatewayResource: string; apiGatewayRestApi: string; apiGatewayStage: string; appSync: string; asg: string; athenaDataCatalog: string; billing: string; clientVpnEndpoint: string; cloud9: string; cloudFormationStack: string; cloudFormationStackSet: string; cloudfront: string; cloudtrail: string; cloudwatch: string; cloudwatchLog: string; codebuild: string; cognitoIdentityPool: string; cognitoUserPool: string; configurationRecorder: string; customerGateway: string; dmsReplicationInstance: string; dynamodb: string; ebs: string; ebsSnapshot: string; ec2Instance: string; ecr: string; ecsCluster: string; ecsContainer: string; ecsService: string; ecsTask: string; ecsTaskDefinition: string; ecsTaskSet: string; efs: string; efsMountTarget: string; eip: string; eksCluster: string; elasticBeanstalkApp: string; elasticBeanstalkEnv: string; elastiCacheCluster: string; elastiCacheReplicationGroup: string; elasticSearchDomain: string; elb: string; flowLog: string; glueJob: string; glueRegistry: string; guardDutyDetector: string; emrCluster: string; emrInstance: string; emrStep: string; iamAccessAnalyzer: string; iamUser: string; iamGroup: string; iamRole: string; iamPolicy: string; iamPasswordPolicy: string; iamSamlProvider: string; iamOpenIdConnectProvider: string; iamServerCertificate: string; iamInstanceProfile: string; igw: string; iot: string; kinesisFirehose: string; kinesisStream: string; kms: string; lambda: string; managedAirflow: string; managedPrefixList: string; mskCluster: string; nacl: string; nat: string; networkInterface: string; organization: string; rdsCluster: string; rdsClusterSnapshot: string; rdsDbInstance: string; redshiftCluster: string; route53HostedZone: string; route53Record: string; routeTable: string; sageMakerExperiment: string; sageMakerNotebookInstance: string; sageMakerProject: string; s3: string; secretsManager: string; securityHub: string; ses: string; sg: string; sns: string; sqs: string; subnet: string; systemsManagerInstance: string; systemsManagerDocument: string; transitGateway: string; transitGatewayAttachment: string; transitGatewayRouteTable: string; vpc: string; vpcEndpoint: string; vpcPeeringConnection: string; vpnConnection: string; vpnGateway: string; wafV2WebAcl: string; }; regions: string[]; resources: { acm: string; alb: string; elb: string; vpc: string; eip: string; nat: string; efs: string; igw: string; nacl: string; subnet: string; kmsKey: string; region: string; account: string; mskCluster: string; iamPasswordPolicy: string; iamSamlProvider: string; iamOpenIdConnectProvider: string; iamServerCertificate: string; }; schemasMap: { [x: string]: string; account: string; }; }; export default class Provider extends CloudGraph.Client { constructor(config: any); private credentials; private profile; private role; private properties; logSelectedAccessRegionsAndResources(profilesOrRolesToLog: string[], regionsToLog: string, resourcesToLog: string): void; configure(): Promise<{ [key: string]: any; }>; getIdentity(account: Account): Promise<{ accountId: string; }>; private unsetAwsCredentials; private getAwsConfig; /** * getSchema is used to get the schema for provider * @returns A string of graphql sub schemas */ getSchema(): DocumentNode; /** * Factory function to return AWS service classes based on input service * @param service an AWS service that is listed within the service map (current supported services) * @returns Instance of an AWS service class to interact with that AWS service */ private getService; private getSharedIniFileCredentials; private getProfilesFromSharedConfig; private mergeRawData; private getRawData; private enhanceData; /** * getData is used to fetch all provider data specified in the config for the provider * @param opts: A set of optional values to configure how getData works * @returns Promise<any> All provider data */ getData({ opts }: { opts: Opts; }): Promise<ProviderData>; }