@@ -12,6 +12,7 @@ import { RawAwsCodeBuild } from '../codeBuild/data'
1212import { RawAwsGlueJob } from '../glueJob/data'
1313import { glueJobArn } from '../../utils/generateArns'
1414import { RawAwsManagedAirflow } from '../managedAirflow/data'
15+ import { RawAwsGuardDutyDetector } from '../guardDutyDetector/data'
1516
1617/**
1718 * IAM Role
@@ -106,60 +107,86 @@ export default ({
106107 /**
107108 * Find any CodeBuild related data
108109 */
109- const codebuild = data . find ( ( { name } ) => name === services . codebuild )
110- if ( codebuild ?. data ?. [ region ] ) {
111- const dataAtRegion : RawAwsCodeBuild [ ] = codebuild . data [ region ] . filter (
112- ( { serviceRole, resourceAccessRole } : RawAwsCodeBuild ) =>
113- serviceRole === role . Arn || resourceAccessRole === role . Arn
114- )
115- for ( const cb of dataAtRegion ) {
116- connections . push ( {
117- id : cb . arn ,
118- resourceType : services . codebuild ,
119- relation : 'child' ,
120- field : 'codebuilds' ,
121- } )
122- }
123- }
124-
125- /**
110+ const codebuild = data . find ( ( { name } ) => name === services . codebuild )
111+ if ( codebuild ?. data ?. [ region ] ) {
112+ const dataAtRegion : RawAwsCodeBuild [ ] = codebuild . data [ region ] . filter (
113+ ( { serviceRole, resourceAccessRole } : RawAwsCodeBuild ) =>
114+ serviceRole === role . Arn || resourceAccessRole === role . Arn
115+ )
116+ for ( const cb of dataAtRegion ) {
117+ connections . push ( {
118+ id : cb . arn ,
119+ resourceType : services . codebuild ,
120+ relation : 'child' ,
121+ field : 'codebuilds' ,
122+ } )
123+ }
124+ }
125+
126+ /**
126127 * Find any glueJob related data
127128 */
128- const jobs = data . find ( ( { name } ) => name === services . glueJob )
129- if ( jobs ?. data ?. [ region ] ) {
130- const dataAtRegion : RawAwsGlueJob [ ] = jobs . data [ region ] . filter (
131- ( { Role } : RawAwsGlueJob ) =>
132- Role === role . Arn
133- )
134- for ( const job of dataAtRegion ) {
135- const arn = glueJobArn ( { region, account, name : job . Name } )
136- connections . push ( {
137- id : arn ,
138- resourceType : services . glueJob ,
139- relation : 'child' ,
140- field : 'glueJobs' ,
141- } )
142- }
129+ const jobs = data . find ( ( { name } ) => name === services . glueJob )
130+ if ( jobs ?. data ?. [ region ] ) {
131+ const dataAtRegion : RawAwsGlueJob [ ] = jobs . data [ region ] . filter (
132+ ( { Role } : RawAwsGlueJob ) => Role === role . Arn
133+ )
134+ for ( const job of dataAtRegion ) {
135+ const arn = glueJobArn ( { region, account, name : job . Name } )
136+ connections . push ( {
137+ id : arn ,
138+ resourceType : services . glueJob ,
139+ relation : 'child' ,
140+ field : 'glueJobs' ,
141+ } )
143142 }
144-
145- /**
143+ }
144+
145+ /**
146146 * Find any managedAirflow related data
147147 */
148- const managedAirflow = data . find ( ( { name } ) => name === services . managedAirflow )
149- if ( managedAirflow ?. data ?. [ region ] ) {
150- const dataAtRegion : RawAwsManagedAirflow [ ] = managedAirflow . data [ region ] . filter (
151- ( { ServiceRoleArn, ExecutionRoleArn } : RawAwsManagedAirflow ) =>
152- ServiceRoleArn === role . Arn || ExecutionRoleArn === role . Arn
153- )
154- for ( const airflow of dataAtRegion ) {
155- connections . push ( {
156- id : airflow . Arn ,
157- resourceType : services . managedAirflow ,
158- relation : 'child' ,
159- field : 'managedAirflows' ,
160- } )
161- }
162- }
148+ const managedAirflow = data . find (
149+ ( { name } ) => name === services . managedAirflow
150+ )
151+ if ( managedAirflow ?. data ?. [ region ] ) {
152+ const dataAtRegion : RawAwsManagedAirflow [ ] = managedAirflow . data [
153+ region
154+ ] . filter (
155+ ( { ServiceRoleArn, ExecutionRoleArn } : RawAwsManagedAirflow ) =>
156+ ServiceRoleArn === role . Arn || ExecutionRoleArn === role . Arn
157+ )
158+ for ( const airflow of dataAtRegion ) {
159+ connections . push ( {
160+ id : airflow . Arn ,
161+ resourceType : services . managedAirflow ,
162+ relation : 'child' ,
163+ field : 'managedAirflows' ,
164+ } )
165+ }
166+ }
167+
168+ /**
169+ * Find any guardDutyDetector related data
170+ */
171+ const detectors = data . find (
172+ ( { name } ) => name === services . guardDutyDetector
173+ )
174+ if ( detectors ?. data ?. [ region ] ) {
175+ const dataAtRegion : RawAwsGuardDutyDetector [ ] = detectors . data [
176+ region
177+ ] . filter (
178+ ( { ServiceRole } : RawAwsGuardDutyDetector ) =>
179+ ServiceRole === role . Arn
180+ )
181+ for ( const detector of dataAtRegion ) {
182+ connections . push ( {
183+ id : detector . id ,
184+ resourceType : services . guardDutyDetector ,
185+ relation : 'child' ,
186+ field : 'guardDutyDetectors' ,
187+ } )
188+ }
189+ }
163190
164191 return {
165192 [ id ] : connections ,
0 commit comments