@csermet/multiprovider
Version:
cloud-graph provider plugin for AWS used to fetch AWS cloud data.
178 lines (177 loc) • 5.38 kB
TypeScript
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>;
}