Skip to content

Commit b5bda76

Browse files
committed
feat(services): Add service vpcPeeringConnection
1 parent a118711 commit b5bda76

18 files changed

Lines changed: 428 additions & 1 deletion

File tree

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,8 @@ CloudGraph AWS Provider will ask you what regions you would like to crawl and wi
161161
| systemsManagerDocument | |
162162
| transitGateway | routeTable, transitGatewayAttachment, vpnConnection |
163163
| transitGatewayAttachment | routeTable, transitGateway, vpc, vpnConnection |
164-
| vpc | alb, codebuild, dmsReplicationInstance, ec2, eip, elb, ecsService, efsMountTarget, eksCluster igw, elastiCacheCluster, elasticSearchDomain, lambda, nacl, natGateway, networkInterface, rdsClusterSnapshot, rdsDbInstance, redshiftCluster, route53HostedZone, routeTable, subnet, flowLog, vpnGateway, transitGatewayAttachment |
164+
| vpc | alb, codebuild, dmsReplicationInstance, ec2, eip, elb, ecsService, efsMountTarget, eksCluster igw, elastiCacheCluster, elasticSearchDomain, lambda, nacl, natGateway, networkInterface, rdsClusterSnapshot, rdsDbInstance, redshiftCluster, route53HostedZone, routeTable, subnet, flowLog, vpnGateway, transitGatewayAttachment, vpcPeeringConnection |
165+
| vpcPeeringConnection | vpc |
165166
| vpnConnection | customerGateway, transitGateway, transitGatewayAttachment, vpnGateway |
166167
| vpnGateway | vpc, vpnConnection |
167168
| wafV2WebAcl | appSync, apiGatewayStage, alb |

src/enums/schemasMap.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ export default {
7979
[services.sg]: 'awsSecurityGroup',
8080
[services.subnet]: 'awsSubnet',
8181
[services.vpc]: 'awsVpc',
82+
[services.vpcPeeringConnection]: 'awsVpcPeeringConnection',
8283
[services.vpnGateway]: 'awsVpnGateway',
8384
[services.sqs]: 'awsSqs',
8485
[services.rdsCluster]: 'awsRdsCluster',

src/enums/serviceAliases.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,4 +71,5 @@ export default {
7171
[services.systemsManagerInstance]: 'systemsManagerInstances',
7272
[services.transitGatewayAttachment]: 'transitGatewayAttachments',
7373
[services.vpnConnection]: 'vpnConnections',
74+
[services.vpcPeeringConnection]: 'vpcPeeringConnections',
7475
}

src/enums/serviceMap.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ import SystemsManagerDocument from '../services/systemsManagerDocument'
9898
import RdsClusterSnapshot from '../services/rdsClusterSnapshot'
9999
import APIGatewayDomainName from '../services/apiGatewayDomainName'
100100
import APIGatewayHttpApi from '../services/apiGatewayHttpApi'
101+
import VpcPeeringConnection from '../services/vpcPeeringConnection'
101102

102103
/**
103104
* serviceMap is an object that contains all currently supported services for AWS
@@ -162,6 +163,7 @@ export default {
162163
[services.sg]: AwsSecurityGroup,
163164
[services.subnet]: AwsSubnet,
164165
[services.vpc]: VPC,
166+
[services.vpcPeeringConnection]: VpcPeeringConnection,
165167
[services.sqs]: SQS,
166168
[services.rdsCluster]: RDSCluster,
167169
[services.rdsClusterSnapshot]: RdsClusterSnapshot,

src/enums/services.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ export default {
9393
transitGateway: 'transitGateway',
9494
transitGatewayAttachment: 'transitGatewayAttachment',
9595
vpc: 'vpc',
96+
vpcPeeringConnection: 'vpcPeeringConnection',
9697
vpnConnection: 'vpnConnection',
9798
vpnGateway: 'vpnGateway',
9899
wafV2WebAcl: 'wafV2WebAcl',

src/properties/logger.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -672,4 +672,8 @@ export default {
672672
* Access Analyzers
673673
*/
674674
fetchedaccessAnalyzers: (num: number): string => `Found ${num} Access Analyzers`,
675+
/**
676+
* Vpc Peering Connections
677+
*/
678+
fetchedVpcPeeringConnections: (num: number): string => `Found ${num} Vpc Peering Connections`,
675679
}

src/services/account/schema.graphql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ type awsAccount implements awsOptionalService @key(fields: "id") {
9494
transitGateway: [awsTransitGateway]
9595
transitGatewayAttachments: [awsTransitGatewayAttachment]
9696
vpc: [awsVpc]
97+
vpcPeeringConnections: [awsVpcPeeringConnection]
9798
vpnConnections: [awsVpnConnection]
9899
vpnGateway: [awsVpnGateway]
99100
wafV2WebAcl: [awsWafV2WebAcl]

src/services/tag/connections.ts

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ import { RawAwsInstanceProfile } from '../iamInstanceProfile/data'
6868
import { RawAwsApiGatewayHttpApi } from '../apiGatewayHttpApi/data'
6969
import { RawAwsApiGatewayDomainName } from '../apiGatewayDomainName/data'
7070
import { RawAwsAnalyzerSummary } from '../iamAccessAnalyzer/data'
71+
import { RawAwsVpcPeeringConnection } from '../vpcPeeringConnection/data'
7172

7273
const findServiceInstancesWithTag = (tag: any, service: any): any => {
7374
const { id } = tag
@@ -1780,6 +1781,32 @@ export default ({
17801781
}
17811782
}
17821783
}
1784+
1785+
/**
1786+
* Find related Vpc Peering Connections
1787+
*/
1788+
const vpcPeeringConnections: {
1789+
name: string
1790+
data: { [property: string]: RawAwsVpcPeeringConnection[] }
1791+
} = data.find(({ name }) => name === services.vpcPeeringConnection)
1792+
if (vpcPeeringConnections?.data?.[region]) {
1793+
const dataAtRegion = findServiceInstancesWithTag(
1794+
tag,
1795+
vpcPeeringConnections.data[region]
1796+
)
1797+
if (!isEmpty(dataAtRegion)) {
1798+
for (const instance of dataAtRegion) {
1799+
const { VpcPeeringConnectionId: id }: RawAwsVpcPeeringConnection = instance
1800+
1801+
connections.push({
1802+
id,
1803+
resourceType: services.vpcPeeringConnection,
1804+
relation: 'child',
1805+
field: 'vpcPeeringConnections',
1806+
})
1807+
}
1808+
}
1809+
}
17831810
}
17841811

17851812
const tagResult = {

src/services/tag/schema.graphql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ type awsTag @key(fields: "id") {
7272
elasticSearchDomains: [awsElasticSearchDomain]
7373
dmsReplicationInstances: [awsDmsReplicationInstance]
7474
systemsManagerDocuments: [awsSystemsManagerDocument]
75+
vpcPeeringConnections: [awsVpcPeeringConnection]
7576
}
7677

7778
type awsRawTag

src/services/vpc/schema.graphql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,5 @@ type awsVpc implements awsBaseService @key(fields: "id") {
3232
elasticSearchDomains: [awsElasticSearchDomain] @hasInverse(field: vpc)
3333
dmsReplicationInstances: [awsDmsReplicationInstance] @hasInverse(field: vpc)
3434
rdsClusterSnapshots: [awsRdsClusterSnapshot] @hasInverse(field: vpc)
35+
vpcPeeringConnection: [awsVpcPeeringConnection] @hasInverse(field: vpc)
3536
}

0 commit comments

Comments
 (0)