Skip to content

Commit 4280dd3

Browse files
authored
Merge pull request #149 from cloudgraphdev/feature/EP-3199-support-missing-glue-services
feat(aws): support missing glue services
2 parents 6d5037d + 2c323fa commit 4280dd3

File tree

25 files changed

+1240
-69
lines changed

25 files changed

+1240
-69
lines changed

README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,8 +124,11 @@ CloudGraph AWS Provider will ask you what regions you would like to crawl and wi
124124
| emrInstance | ebs, ec2 |
125125
| emrStep | |
126126
| flowLog | vpc, iamRole, subnet, networkInterface |
127-
| glueJob | iamRole |
128-
| glueRegistry | |
127+
| glueCrawler | |
128+
| glueDatabase | |
129+
| glueJob | iamRole |
130+
| glueRegistry | |
131+
| glueTrigger | |
129132
| guardDutyDetector | iamRole |
130133
| iamAccessAnalyzer | |
131134
| iamInstanceProfile | ec2, iamRole |

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
},
3333
"dependencies": {
3434
"@aws-sdk/client-elastic-beanstalk": "^3.338.0",
35+
"@aws-sdk/client-glue": "^3.342.0",
3536
"@aws-sdk/client-ssm": "^3.341.0",
3637
"@aws-sdk/credential-providers": "^3.256.0",
3738
"@aws-sdk/shared-ini-file-loader": "^3.254.0",

src/enums/schemasMap.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,11 @@ export default {
5252
[services.elasticSearchDomain]: 'awsElasticSearchDomain',
5353
[services.elb]: 'awsElb',
5454
[services.flowLog]: 'awsFlowLog',
55+
[services.glueCrawler]: 'awsGlueCrawler',
56+
[services.glueDatabase]: 'awsGlueDatabase',
5557
[services.glueJob]: 'awsGlueJob',
5658
[services.glueRegistry]: 'awsGlueRegistry',
59+
[services.glueTrigger]: 'awsGlueTrigger',
5760
[services.guardDutyDetector]: 'awsGuardDutyDetector',
5861
[services.emrCluster]: 'awsEmrCluster',
5962
[services.emrInstance]: 'awsEmrInstance',

src/enums/serviceAliases.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,11 @@ export default {
4444
[services.emrInstance]: 'emrInstances',
4545
[services.emrStep]: 'emrSteps',
4646
[services.flowLog]: 'flowLogs',
47+
[services.glueCrawler]: 'glueCrawlers',
48+
[services.glueDatabase]: 'glueDatabases',
4749
[services.glueJob]: 'glueJobs',
4850
[services.glueRegistry]: 'glueRegistries',
51+
[services.glueTrigger]: 'glueTriggers',
4952
[services.guardDutyDetector]: 'guardDutyDetectors',
5053
[services.iamAccessAnalyzer]: 'iamAccessAnalyzers',
5154
[services.iamGroup]: 'iamGroups',

src/enums/serviceMap.ts

Lines changed: 73 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,41 @@
11
import Account from '../services/account'
22
import ACM from '../services/acm'
33
import ALB from '../services/alb'
4+
import APIGatewayApiKey from '../services/apiGatewayApiKey'
5+
import APIGatewayDomainName from '../services/apiGatewayDomainName'
6+
import APIGatewayHttpApi from '../services/apiGatewayHttpApi'
47
import APIGatewayResource from '../services/apiGatewayResource'
58
import APIGatewayRestApi from '../services/apiGatewayRestApi'
6-
import APIGatewayApiKey from '../services/apiGatewayApiKey'
7-
import APIGatewayVpcLink from '../services/apiGatewayVpcLink'
8-
import APIGatewayUsagePlan from '../services/apiGatewayUsagePlan'
99
import APIGatewayStage from '../services/apiGatewayStage'
10-
import ASG from '../services/asg'
10+
import APIGatewayUsagePlan from '../services/apiGatewayUsagePlan'
11+
import APIGatewayVpcLink from '../services/apiGatewayVpcLink'
1112
import AppSync from '../services/appSync'
12-
import AwsInternetGateway from '../services/igw'
13-
import AwsKinesisFirehose from '../services/kinesisFirehose'
14-
import AwsKinesisStream from '../services/kinesisStream'
15-
import AwsKms from '../services/kms'
16-
import AwsSecurityGroup from '../services/securityGroup'
17-
import AwsSubnet from '../services/subnet'
18-
import AwsTag from '../services/tag'
13+
import ASG from '../services/asg'
1914
import AthenaDataCatalog from '../services/athenaDataCatalog'
2015
import Billing from '../services/billing'
21-
import CloudFront from '../services/cloudfront'
22-
import CloudTrail from '../services/cloudtrail'
16+
import ClientVpnEndpoint from '../services/clientVpnEndpoint'
17+
import Cloud9Environment from '../services/cloud9'
2318
import CloudFormationStack from '../services/cloudFormationStack'
2419
import CloudFormationStackSet from '../services/cloudFormationStackSet'
20+
import CloudFront from '../services/cloudfront'
21+
import CloudTrail from '../services/cloudtrail'
2522
import CloudWatch from '../services/cloudwatch'
2623
import CloudWatchDashboard from '../services/cloudwatchDashboards'
2724
import CloudWatchEventRule from '../services/cloudwatchEventRules'
25+
import CloudWatchLog from '../services/cloudwatchLogs'
26+
import CodeBuild from '../services/codeBuild'
2827
import CognitoIdentityPool from '../services/cognitoIdentityPool'
2928
import CognitoUserPool from '../services/cognitoUserPool'
29+
import ConfigurationDeliveryChannel from '../services/configurationDeliveryChannel'
30+
import ConfigurationRecorder from '../services/configurationRecorder'
31+
import ConfigurationRule from '../services/configurationRule'
32+
import CustomerGateway from '../services/customerGateway'
33+
import DmsReplicationInstance from '../services/dmsReplicationInstance'
3034
import DynamoDB from '../services/dynamodb'
3135
import EBS from '../services/ebs'
3236
import EBSSnapshot from '../services/ebsSnapshot'
3337
import EC2 from '../services/ec2'
38+
import ECR from '../services/ecr'
3439
import EcsCluster from '../services/ecsCluster'
3540
import EcsContainer from '../services/ecsContainer'
3641
import EcsService from '../services/ecsService'
@@ -40,83 +45,81 @@ import EcsTaskSet from '../services/ecsTaskSet'
4045
import EFS from '../services/efs'
4146
import EfsMountTarget from '../services/efsMountTarget'
4247
import EIP from '../services/eip'
43-
import ElasticBeanstalkApp from '../services/elasticBeanstalkApplication'
44-
import ElasticBeanstalkEnv from '../services/elasticBeanstalkEnvironment'
48+
import EKSCluster from '../services/eksCluster'
4549
import ElastiCacheCluster from '../services/elastiCacheCluster'
4650
import ElastiCacheReplicationGroup from '../services/elastiCacheReplicationGroup'
51+
import ElasticBeanstalkApp from '../services/elasticBeanstalkApplication'
52+
import ElasticBeanstalkEnv from '../services/elasticBeanstalkEnvironment'
53+
import ElasticSearchDomain from '../services/elasticSearchDomain'
4754
import ELB from '../services/elb'
48-
import FlowLog from '../services/flowLogs'
4955
import EmrCluster from '../services/emrCluster'
5056
import EmrInstance from '../services/emrInstance'
5157
import EmrStep from '../services/emrStep'
58+
import FlowLog from '../services/flowLogs'
59+
import GlueCrawler from '../services/glueCrawler'
60+
import GlueDatabase from '../services/glueDatabase'
61+
import GlueJob from '../services/glueJob'
62+
import GlueRegistry from '../services/glueRegistry'
63+
import GlueTrigger from '../services/glueTrigger'
64+
import GuardDutyDetector from '../services/guardDutyDetector'
65+
import IamAccessAnalyzer from '../services/iamAccessAnalyzer'
66+
import IamGroup from '../services/iamGroup'
67+
import IamInstanceProfile from '../services/iamInstanceProfile'
68+
import IamOpenIdConnectProvider from '../services/iamOpenIdConnectProvider'
69+
import IamPasswordPolicy from '../services/iamPasswordPolicy'
70+
import IamPolicy from '../services/iamPolicy'
71+
import IamRole from '../services/iamRole'
72+
import IamSamlProvider from '../services/iamSamlProvider'
73+
import IamServerCertificate from '../services/iamServerCertificate'
74+
import IamUser from '../services/iamUser'
75+
import AwsInternetGateway from '../services/igw'
76+
import IotThingAttribute from '../services/iot'
77+
import AwsKinesisFirehose from '../services/kinesisFirehose'
78+
import AwsKinesisStream from '../services/kinesisStream'
79+
import AwsKms from '../services/kms'
5280
import Lambda from '../services/lambda'
53-
import NATGateway from '../services/natGateway'
81+
import ManagedAirflow from '../services/managedAirflow'
82+
import ManagedPrefixList from '../services/managedPrefixList'
83+
import MskCluster from '../services/msk'
5484
import NetworkAcl from '../services/nacl'
85+
import NATGateway from '../services/natGateway'
5586
import NetworkInterface from '../services/networkInterface'
87+
import Organization from '../services/organization'
5688
import RDSCluster from '../services/rdsCluster'
57-
import RDSGlobalCluster from '../services/rdsGlobalCluster '
89+
import RdsClusterSnapshot from '../services/rdsClusterSnapshot'
5890
import RDSDbInstance from '../services/rdsDbInstance'
59-
import RDSEventSubscription from '../services/rdsEventSubscription'
6091
import RdsDbProxies from '../services/rdsDbProxies'
92+
import RDSEventSubscription from '../services/rdsEventSubscription'
93+
import RDSGlobalCluster from '../services/rdsGlobalCluster '
6194
import RedshiftCluster from '../services/redshift'
6295
import Route53HostedZone from '../services/route53HostedZone'
6396
import Route53Record from '../services/route53Record'
6497
import RouteTable from '../services/routeTable'
98+
import S3 from '../services/s3'
99+
import SageMakerExperiment from '../services/sageMakerExperiment'
100+
import SageMakerNotebookInstance from '../services/sageMakerNotebookInstance'
101+
import SageMakerProject from '../services/sageMakerProject'
65102
import SecretsManager from '../services/secretsManager'
103+
import AwsSecurityGroup from '../services/securityGroup'
66104
import SecurityHub from '../services/securityHub'
67-
import S3 from '../services/s3'
68105
import SES from '../services/ses'
69-
import SQS from '../services/sqs'
70-
import VPC from '../services/vpc'
71-
import ECR from '../services/ecr'
72-
import IamAccessAnalyzer from '../services/iamAccessAnalyzer'
73-
import IamGroup from '../services/iamGroup'
74-
import IamUser from '../services/iamUser'
75-
import IamRole from '../services/iamRole'
76-
import IamPolicy from '../services/iamPolicy'
77-
import IamPasswordPolicy from '../services/iamPasswordPolicy'
78-
import IamSamlProvider from '../services/iamSamlProvider'
79-
import IamOpenIdConnectProvider from '../services/iamOpenIdConnectProvider'
80-
import IamServerCertificate from '../services/iamServerCertificate'
81-
import IamInstanceProfile from '../services/iamInstanceProfile'
82106
import SNS from '../services/sns'
83-
import EKSCluster from '../services/eksCluster'
84-
import Cloud9Environment from '../services/cloud9'
85-
import IotThingAttribute from '../services/iot'
86-
import services from './services'
87-
import TransitGateway from '../services/transitGateway'
88-
import TransitGatewayAttachment from '../services/transitGatewayAttachment'
89-
import CustomerGateway from '../services/customerGateway'
90-
import VpnGateway from '../services/vpnGateway'
91-
import ClientVpnEndpoint from '../services/clientVpnEndpoint'
92-
import VpnConnection from '../services/vpnConnection'
93-
import Organization from '../services/organization'
94-
import CloudWatchLog from '../services/cloudwatchLogs'
95-
import ConfigurationDeliveryChannel from '../services/configurationDeliveryChannel'
96-
import ConfigurationRecorder from '../services/configurationRecorder'
97-
import ConfigurationRule from '../services/configurationRule'
98-
import CodeBuild from '../services/codeBuild'
99-
import GlueJob from '../services/glueJob'
100-
import GlueRegistry from '../services/glueRegistry'
101-
import SageMakerProject from '../services/sageMakerProject'
102-
import SageMakerExperiment from '../services/sageMakerExperiment'
103-
import ManagedAirflow from '../services/managedAirflow'
104-
import WafV2WebAcl from '../services/wafV2WebAcl'
105-
import GuardDutyDetector from '../services/guardDutyDetector'
106-
import ElasticSearchDomain from '../services/elasticSearchDomain'
107-
import DmsReplicationInstance from '../services/dmsReplicationInstance'
108-
import SageMakerNotebookInstance from '../services/sageMakerNotebookInstance'
109-
import SystemsManagerInstance from '../services/systemsManagerInstance'
107+
import SQS from '../services/sqs'
108+
import AwsSubnet from '../services/subnet'
110109
import SystemsManagerDocument from '../services/systemsManagerDocument'
110+
import SystemsManagerInstance from '../services/systemsManagerInstance'
111111
import SystemsManagerParameter from '../services/systemsManagerParameter'
112-
import RdsClusterSnapshot from '../services/rdsClusterSnapshot'
113-
import VpcEndpoint from '../services/vpcEndpoint'
114-
import APIGatewayDomainName from '../services/apiGatewayDomainName'
115-
import APIGatewayHttpApi from '../services/apiGatewayHttpApi'
116-
import ManagedPrefixList from '../services/managedPrefixList'
117-
import MskCluster from '../services/msk'
112+
import AwsTag from '../services/tag'
113+
import TransitGateway from '../services/transitGateway'
114+
import TransitGatewayAttachment from '../services/transitGatewayAttachment'
118115
import TransitGatewayRouteTable from '../services/transitGatewayRouteTable'
116+
import VPC from '../services/vpc'
117+
import VpcEndpoint from '../services/vpcEndpoint'
119118
import VpcPeeringConnection from '../services/vpcPeeringConnection'
119+
import VpnConnection from '../services/vpnConnection'
120+
import VpnGateway from '../services/vpnGateway'
121+
import WafV2WebAcl from '../services/wafV2WebAcl'
122+
import services from './services'
120123

121124
/**
122125
* serviceMap is an object that contains all currently supported services for AWS
@@ -169,9 +172,12 @@ export default {
169172
[services.elasticSearchDomain]: ElasticSearchDomain,
170173
[services.elb]: ELB,
171174
[services.flowLog]: FlowLog,
175+
[services.glueCrawler]: GlueCrawler,
176+
[services.glueDatabase]: GlueDatabase,
172177
[services.glueJob]: GlueJob,
173-
[services.guardDutyDetector]: GuardDutyDetector,
174178
[services.glueRegistry]: GlueRegistry,
179+
[services.glueTrigger]: GlueTrigger,
180+
[services.guardDutyDetector]: GuardDutyDetector,
175181
[services.emrCluster]: EmrCluster,
176182
[services.emrInstance]: EmrInstance,
177183
[services.emrStep]: EmrStep,

src/enums/services.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,11 @@ export default {
5353
elasticSearchDomain: 'elasticSearchDomain',
5454
elb: 'elb',
5555
flowLog: 'flowLog',
56+
glueCrawler: 'glueCrawler',
57+
glueDatabase: 'glueDatabase',
5658
glueJob: 'glueJob',
5759
glueRegistry: 'glueRegistry',
60+
glueTrigger: 'glueTrigger',
5861
guardDutyDetector: 'guardDutyDetector',
5962
emrCluster: 'emrCluster',
6063
emrInstance: 'emrInstance',

src/services/account/schema.graphql

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,11 @@ type awsAccount implements awsOptionalService @key(fields: "id") {
5353
emrInstances: [awsEmrInstance]
5454
emrSteps: [awsEmrStep]
5555
flowLogs: [awsFlowLog]
56+
glueCrawlers: [awsGlueCrawler]
57+
glueDatabases: [awsGlueDatabase]
5658
glueJobs: [awsGlueJob]
5759
glueRegistries: [awsGlueRegistry]
60+
glueTriggers: [awsGlueTrigger]
5861
guardDutyDetectors: [awsGuardDutyDetector]
5962
iamAccessAnalyzers: [awsIamAccessAnalyzer]
6063
iamGroups: [awsIamGroup]
@@ -98,6 +101,7 @@ type awsAccount implements awsOptionalService @key(fields: "id") {
98101
securityHub: [awsSecurityHub]
99102
systemsManagerDocuments: [awsSystemsManagerDocument]
100103
systemsManagerInstances: [awsSystemsManagerInstance]
104+
systemsManagerParameters: [awsSystemsManagerParameter]
101105
ses: [awsSes]
102106
sns: [awsSns]
103107
sqs: [awsSqs]

0 commit comments

Comments
 (0)