cartography 0.102.0rc2__py3-none-any.whl → 0.103.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of cartography might be problematic. Click here for more details.

Files changed (297) hide show
  1. cartography/__main__.py +1 -2
  2. cartography/_version.py +2 -2
  3. cartography/cli.py +376 -249
  4. cartography/client/core/tx.py +39 -18
  5. cartography/config.py +28 -0
  6. cartography/driftdetect/__main__.py +1 -2
  7. cartography/driftdetect/add_shortcut.py +10 -2
  8. cartography/driftdetect/cli.py +71 -75
  9. cartography/driftdetect/detect_deviations.py +7 -3
  10. cartography/driftdetect/get_states.py +20 -8
  11. cartography/driftdetect/model.py +5 -5
  12. cartography/driftdetect/serializers.py +8 -6
  13. cartography/driftdetect/storage.py +2 -2
  14. cartography/graph/cleanupbuilder.py +35 -15
  15. cartography/graph/job.py +46 -17
  16. cartography/graph/querybuilder.py +165 -80
  17. cartography/graph/statement.py +35 -26
  18. cartography/intel/analysis.py +4 -1
  19. cartography/intel/aws/__init__.py +114 -55
  20. cartography/intel/aws/apigateway.py +134 -63
  21. cartography/intel/aws/cloudtrail.py +127 -0
  22. cartography/intel/aws/cloudwatch.py +93 -0
  23. cartography/intel/aws/config.py +56 -20
  24. cartography/intel/aws/dynamodb.py +108 -40
  25. cartography/intel/aws/ec2/__init__.py +2 -2
  26. cartography/intel/aws/ec2/auto_scaling_groups.py +181 -78
  27. cartography/intel/aws/ec2/elastic_ip_addresses.py +41 -13
  28. cartography/intel/aws/ec2/images.py +49 -20
  29. cartography/intel/aws/ec2/instances.py +234 -136
  30. cartography/intel/aws/ec2/internet_gateways.py +40 -11
  31. cartography/intel/aws/ec2/key_pairs.py +44 -20
  32. cartography/intel/aws/ec2/launch_templates.py +101 -59
  33. cartography/intel/aws/ec2/load_balancer_v2s.py +104 -39
  34. cartography/intel/aws/ec2/load_balancers.py +82 -42
  35. cartography/intel/aws/ec2/network_acls.py +89 -65
  36. cartography/intel/aws/ec2/network_interfaces.py +146 -87
  37. cartography/intel/aws/ec2/reserved_instances.py +45 -16
  38. cartography/intel/aws/ec2/route_tables.py +138 -98
  39. cartography/intel/aws/ec2/security_groups.py +71 -21
  40. cartography/intel/aws/ec2/snapshots.py +61 -22
  41. cartography/intel/aws/ec2/subnets.py +54 -18
  42. cartography/intel/aws/ec2/tgw.py +100 -34
  43. cartography/intel/aws/ec2/util.py +1 -1
  44. cartography/intel/aws/ec2/volumes.py +69 -41
  45. cartography/intel/aws/ec2/vpc.py +37 -12
  46. cartography/intel/aws/ec2/vpc_peerings.py +83 -24
  47. cartography/intel/aws/ecr.py +88 -32
  48. cartography/intel/aws/ecs.py +83 -47
  49. cartography/intel/aws/efs.py +93 -0
  50. cartography/intel/aws/eks.py +55 -29
  51. cartography/intel/aws/elasticache.py +42 -18
  52. cartography/intel/aws/elasticsearch.py +57 -20
  53. cartography/intel/aws/emr.py +61 -23
  54. cartography/intel/aws/iam.py +401 -145
  55. cartography/intel/aws/iam_instance_profiles.py +22 -22
  56. cartography/intel/aws/identitycenter.py +71 -37
  57. cartography/intel/aws/inspector.py +159 -89
  58. cartography/intel/aws/kms.py +92 -38
  59. cartography/intel/aws/lambda_function.py +103 -34
  60. cartography/intel/aws/organizations.py +30 -10
  61. cartography/intel/aws/permission_relationships.py +133 -51
  62. cartography/intel/aws/rds.py +249 -85
  63. cartography/intel/aws/redshift.py +107 -46
  64. cartography/intel/aws/resourcegroupstaggingapi.py +120 -66
  65. cartography/intel/aws/resources.py +57 -46
  66. cartography/intel/aws/route53.py +108 -61
  67. cartography/intel/aws/s3.py +168 -83
  68. cartography/intel/aws/s3accountpublicaccessblock.py +157 -0
  69. cartography/intel/aws/secretsmanager.py +24 -12
  70. cartography/intel/aws/securityhub.py +20 -9
  71. cartography/intel/aws/sns.py +166 -0
  72. cartography/intel/aws/sqs.py +60 -28
  73. cartography/intel/aws/ssm.py +70 -30
  74. cartography/intel/aws/util/arns.py +7 -7
  75. cartography/intel/aws/util/common.py +31 -4
  76. cartography/intel/azure/__init__.py +78 -19
  77. cartography/intel/azure/compute.py +101 -27
  78. cartography/intel/azure/cosmosdb.py +496 -170
  79. cartography/intel/azure/sql.py +296 -105
  80. cartography/intel/azure/storage.py +322 -113
  81. cartography/intel/azure/subscription.py +39 -23
  82. cartography/intel/azure/tenant.py +13 -4
  83. cartography/intel/azure/util/credentials.py +95 -55
  84. cartography/intel/bigfix/__init__.py +2 -2
  85. cartography/intel/bigfix/computers.py +93 -65
  86. cartography/intel/cloudflare/__init__.py +74 -0
  87. cartography/intel/cloudflare/accounts.py +57 -0
  88. cartography/intel/cloudflare/dnsrecords.py +64 -0
  89. cartography/intel/cloudflare/members.py +75 -0
  90. cartography/intel/cloudflare/roles.py +65 -0
  91. cartography/intel/cloudflare/zones.py +64 -0
  92. cartography/intel/create_indexes.py +3 -2
  93. cartography/intel/crowdstrike/__init__.py +11 -9
  94. cartography/intel/crowdstrike/endpoints.py +5 -1
  95. cartography/intel/crowdstrike/spotlight.py +8 -3
  96. cartography/intel/cve/__init__.py +46 -13
  97. cartography/intel/cve/feed.py +48 -12
  98. cartography/intel/digitalocean/__init__.py +22 -13
  99. cartography/intel/digitalocean/compute.py +75 -108
  100. cartography/intel/digitalocean/management.py +44 -80
  101. cartography/intel/digitalocean/platform.py +48 -43
  102. cartography/intel/dns.py +36 -10
  103. cartography/intel/duo/__init__.py +21 -16
  104. cartography/intel/duo/api_host.py +14 -9
  105. cartography/intel/duo/endpoints.py +50 -45
  106. cartography/intel/duo/groups.py +18 -14
  107. cartography/intel/duo/phones.py +37 -34
  108. cartography/intel/duo/tokens.py +26 -23
  109. cartography/intel/duo/users.py +54 -50
  110. cartography/intel/duo/web_authn_credentials.py +30 -25
  111. cartography/intel/entra/__init__.py +25 -7
  112. cartography/intel/entra/ou.py +112 -0
  113. cartography/intel/entra/users.py +69 -63
  114. cartography/intel/gcp/__init__.py +185 -49
  115. cartography/intel/gcp/compute.py +418 -231
  116. cartography/intel/gcp/crm.py +96 -43
  117. cartography/intel/gcp/dns.py +60 -19
  118. cartography/intel/gcp/gke.py +72 -38
  119. cartography/intel/gcp/iam.py +61 -41
  120. cartography/intel/gcp/storage.py +84 -55
  121. cartography/intel/github/__init__.py +13 -11
  122. cartography/intel/github/repos.py +270 -137
  123. cartography/intel/github/teams.py +170 -88
  124. cartography/intel/github/users.py +70 -39
  125. cartography/intel/github/util.py +36 -34
  126. cartography/intel/gsuite/__init__.py +47 -26
  127. cartography/intel/gsuite/api.py +73 -30
  128. cartography/intel/jamf/__init__.py +19 -1
  129. cartography/intel/jamf/computers.py +30 -7
  130. cartography/intel/jamf/util.py +7 -2
  131. cartography/intel/kandji/__init__.py +6 -3
  132. cartography/intel/kandji/devices.py +14 -8
  133. cartography/intel/kubernetes/namespaces.py +7 -4
  134. cartography/intel/kubernetes/pods.py +7 -4
  135. cartography/intel/kubernetes/services.py +8 -4
  136. cartography/intel/lastpass/__init__.py +2 -2
  137. cartography/intel/lastpass/users.py +23 -12
  138. cartography/intel/oci/__init__.py +44 -11
  139. cartography/intel/oci/iam.py +134 -38
  140. cartography/intel/oci/organizations.py +13 -6
  141. cartography/intel/oci/utils.py +43 -20
  142. cartography/intel/okta/__init__.py +66 -15
  143. cartography/intel/okta/applications.py +42 -20
  144. cartography/intel/okta/awssaml.py +93 -33
  145. cartography/intel/okta/factors.py +16 -4
  146. cartography/intel/okta/groups.py +56 -29
  147. cartography/intel/okta/organization.py +5 -1
  148. cartography/intel/okta/origins.py +6 -2
  149. cartography/intel/okta/roles.py +15 -5
  150. cartography/intel/okta/users.py +20 -8
  151. cartography/intel/okta/utils.py +6 -4
  152. cartography/intel/openai/__init__.py +86 -0
  153. cartography/intel/openai/adminapikeys.py +90 -0
  154. cartography/intel/openai/apikeys.py +96 -0
  155. cartography/intel/openai/projects.py +94 -0
  156. cartography/intel/openai/serviceaccounts.py +82 -0
  157. cartography/intel/openai/users.py +78 -0
  158. cartography/intel/openai/util.py +29 -0
  159. cartography/intel/pagerduty/__init__.py +8 -7
  160. cartography/intel/pagerduty/escalation_policies.py +18 -6
  161. cartography/intel/pagerduty/schedules.py +12 -4
  162. cartography/intel/pagerduty/services.py +11 -4
  163. cartography/intel/pagerduty/teams.py +8 -3
  164. cartography/intel/pagerduty/users.py +3 -1
  165. cartography/intel/pagerduty/vendors.py +3 -1
  166. cartography/intel/semgrep/__init__.py +24 -6
  167. cartography/intel/semgrep/dependencies.py +50 -28
  168. cartography/intel/semgrep/deployment.py +3 -1
  169. cartography/intel/semgrep/findings.py +42 -18
  170. cartography/intel/snipeit/__init__.py +17 -3
  171. cartography/intel/snipeit/asset.py +12 -6
  172. cartography/intel/snipeit/user.py +8 -5
  173. cartography/intel/snipeit/util.py +9 -4
  174. cartography/intel/tailscale/__init__.py +77 -0
  175. cartography/intel/tailscale/acls.py +146 -0
  176. cartography/intel/tailscale/devices.py +127 -0
  177. cartography/intel/tailscale/postureintegrations.py +81 -0
  178. cartography/intel/tailscale/tailnets.py +76 -0
  179. cartography/intel/tailscale/users.py +80 -0
  180. cartography/intel/tailscale/utils.py +132 -0
  181. cartography/models/aws/apigateway.py +21 -17
  182. cartography/models/aws/apigatewaycertificate.py +28 -22
  183. cartography/models/aws/apigatewayresource.py +28 -20
  184. cartography/models/aws/apigatewaystage.py +33 -25
  185. cartography/models/aws/cloudtrail/__init__.py +0 -0
  186. cartography/models/aws/cloudtrail/trail.py +61 -0
  187. cartography/models/aws/cloudwatch/__init__.py +0 -0
  188. cartography/models/aws/cloudwatch/loggroup.py +52 -0
  189. cartography/models/aws/dynamodb/gsi.py +30 -22
  190. cartography/models/aws/dynamodb/tables.py +25 -17
  191. cartography/models/aws/ec2/auto_scaling_groups.py +102 -82
  192. cartography/models/aws/ec2/images.py +36 -34
  193. cartography/models/aws/ec2/instances.py +51 -45
  194. cartography/models/aws/ec2/keypair.py +21 -16
  195. cartography/models/aws/ec2/keypair_instance.py +28 -21
  196. cartography/models/aws/ec2/launch_configurations.py +30 -26
  197. cartography/models/aws/ec2/launch_template_versions.py +48 -38
  198. cartography/models/aws/ec2/launch_templates.py +21 -17
  199. cartography/models/aws/ec2/load_balancer_listeners.py +27 -23
  200. cartography/models/aws/ec2/load_balancers.py +47 -37
  201. cartography/models/aws/ec2/network_acl_rules.py +38 -30
  202. cartography/models/aws/ec2/network_acls.py +38 -29
  203. cartography/models/aws/ec2/networkinterface_instance.py +52 -39
  204. cartography/models/aws/ec2/networkinterfaces.py +53 -37
  205. cartography/models/aws/ec2/privateip_networkinterface.py +32 -22
  206. cartography/models/aws/ec2/reservations.py +18 -14
  207. cartography/models/aws/ec2/route_table_associations.py +44 -34
  208. cartography/models/aws/ec2/route_tables.py +50 -43
  209. cartography/models/aws/ec2/routes.py +45 -37
  210. cartography/models/aws/ec2/securitygroup_instance.py +29 -20
  211. cartography/models/aws/ec2/securitygroup_networkinterface.py +24 -15
  212. cartography/models/aws/ec2/subnet_instance.py +24 -19
  213. cartography/models/aws/ec2/subnet_networkinterface.py +40 -31
  214. cartography/models/aws/ec2/volumes.py +47 -40
  215. cartography/models/aws/efs/__init__.py +0 -0
  216. cartography/models/aws/efs/mount_target.py +52 -0
  217. cartography/models/aws/eks/clusters.py +23 -21
  218. cartography/models/aws/emr.py +32 -30
  219. cartography/models/aws/iam/instanceprofile.py +33 -24
  220. cartography/models/aws/identitycenter/awsidentitycenter.py +18 -14
  221. cartography/models/aws/identitycenter/awspermissionset.py +37 -29
  222. cartography/models/aws/identitycenter/awsssouser.py +23 -21
  223. cartography/models/aws/inspector/findings.py +77 -65
  224. cartography/models/aws/inspector/packages.py +35 -29
  225. cartography/models/aws/s3/__init__.py +0 -0
  226. cartography/models/aws/s3/account_public_access_block.py +51 -0
  227. cartography/models/aws/sns/__init__.py +0 -0
  228. cartography/models/aws/sns/topic.py +50 -0
  229. cartography/models/aws/ssm/instance_information.py +51 -39
  230. cartography/models/aws/ssm/instance_patch.py +32 -26
  231. cartography/models/bigfix/bigfix_computer.py +42 -38
  232. cartography/models/bigfix/bigfix_root.py +3 -3
  233. cartography/models/cloudflare/__init__.py +0 -0
  234. cartography/models/cloudflare/account.py +25 -0
  235. cartography/models/cloudflare/dnsrecord.py +55 -0
  236. cartography/models/cloudflare/member.py +82 -0
  237. cartography/models/cloudflare/role.py +44 -0
  238. cartography/models/cloudflare/zone.py +59 -0
  239. cartography/models/core/common.py +12 -10
  240. cartography/models/core/nodes.py +5 -2
  241. cartography/models/core/relationships.py +14 -6
  242. cartography/models/crowdstrike/hosts.py +37 -35
  243. cartography/models/cve/cve.py +34 -32
  244. cartography/models/cve/cve_feed.py +6 -6
  245. cartography/models/digitalocean/__init__.py +0 -0
  246. cartography/models/digitalocean/account.py +21 -0
  247. cartography/models/digitalocean/droplet.py +56 -0
  248. cartography/models/digitalocean/project.py +48 -0
  249. cartography/models/duo/api_host.py +3 -3
  250. cartography/models/duo/endpoint.py +43 -41
  251. cartography/models/duo/group.py +14 -14
  252. cartography/models/duo/phone.py +27 -27
  253. cartography/models/duo/token.py +16 -16
  254. cartography/models/duo/user.py +46 -44
  255. cartography/models/duo/web_authn_credential.py +27 -19
  256. cartography/models/entra/ou.py +48 -0
  257. cartography/models/entra/tenant.py +24 -18
  258. cartography/models/entra/user.py +64 -48
  259. cartography/models/gcp/iam.py +23 -23
  260. cartography/models/github/orgs.py +5 -4
  261. cartography/models/github/teams.py +37 -31
  262. cartography/models/github/users.py +34 -23
  263. cartography/models/kandji/device.py +22 -16
  264. cartography/models/kandji/tenant.py +6 -4
  265. cartography/models/lastpass/tenant.py +3 -3
  266. cartography/models/lastpass/user.py +32 -28
  267. cartography/models/openai/__init__.py +0 -0
  268. cartography/models/openai/adminapikey.py +90 -0
  269. cartography/models/openai/apikey.py +84 -0
  270. cartography/models/openai/organization.py +17 -0
  271. cartography/models/openai/project.py +70 -0
  272. cartography/models/openai/serviceaccount.py +50 -0
  273. cartography/models/openai/user.py +49 -0
  274. cartography/models/semgrep/dependencies.py +36 -24
  275. cartography/models/semgrep/deployment.py +5 -5
  276. cartography/models/semgrep/findings.py +58 -42
  277. cartography/models/semgrep/locations.py +27 -21
  278. cartography/models/snipeit/asset.py +30 -21
  279. cartography/models/snipeit/tenant.py +6 -4
  280. cartography/models/snipeit/user.py +19 -12
  281. cartography/models/tailscale/__init__.py +0 -0
  282. cartography/models/tailscale/device.py +95 -0
  283. cartography/models/tailscale/group.py +86 -0
  284. cartography/models/tailscale/postureintegration.py +58 -0
  285. cartography/models/tailscale/tag.py +102 -0
  286. cartography/models/tailscale/tailnet.py +29 -0
  287. cartography/models/tailscale/user.py +52 -0
  288. cartography/stats.py +3 -3
  289. cartography/sync.py +113 -31
  290. cartography/util.py +84 -62
  291. {cartography-0.102.0rc2.dist-info → cartography-0.103.0.dist-info}/METADATA +8 -15
  292. cartography-0.103.0.dist-info/RECORD +442 -0
  293. {cartography-0.102.0rc2.dist-info → cartography-0.103.0.dist-info}/WHEEL +1 -1
  294. cartography-0.102.0rc2.dist-info/RECORD +0 -381
  295. {cartography-0.102.0rc2.dist-info → cartography-0.103.0.dist-info}/entry_points.txt +0 -0
  296. {cartography-0.102.0rc2.dist-info → cartography-0.103.0.dist-info}/licenses/LICENSE +0 -0
  297. {cartography-0.102.0rc2.dist-info → cartography-0.103.0.dist-info}/top_level.txt +0 -0
@@ -13,56 +13,64 @@ from cartography.models.core.relationships import TargetNodeMatcher
13
13
 
14
14
  @dataclass(frozen=True)
15
15
  class DynamoDBGSINodeProperties(CartographyNodeProperties):
16
- id: PropertyRef = PropertyRef('Arn')
17
- arn: PropertyRef = PropertyRef('Arn')
18
- name: PropertyRef = PropertyRef('GSIName')
19
- region: PropertyRef = PropertyRef('Region', set_in_kwargs=True)
20
- lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
21
- provisioned_throughput_read_capacity_units: PropertyRef = PropertyRef('ProvisionedThroughputReadCapacityUnits')
22
- provisioned_throughput_write_capacity_units: PropertyRef = PropertyRef('ProvisionedThroughputWriteCapacityUnits')
16
+ id: PropertyRef = PropertyRef("Arn")
17
+ arn: PropertyRef = PropertyRef("Arn")
18
+ name: PropertyRef = PropertyRef("GSIName")
19
+ region: PropertyRef = PropertyRef("Region", set_in_kwargs=True)
20
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
21
+ provisioned_throughput_read_capacity_units: PropertyRef = PropertyRef(
22
+ "ProvisionedThroughputReadCapacityUnits",
23
+ )
24
+ provisioned_throughput_write_capacity_units: PropertyRef = PropertyRef(
25
+ "ProvisionedThroughputWriteCapacityUnits",
26
+ )
23
27
 
24
28
 
25
29
  @dataclass(frozen=True)
26
- class DynamoDBGSIToAwsAccountRelProperties(CartographyRelProperties):
27
- lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
30
+ class DynamoDBGSIToAWSAccountRelRelProperties(CartographyRelProperties):
31
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
28
32
 
29
33
 
30
34
  @dataclass(frozen=True)
31
35
  # (:DynamoDBGlobalSecondaryIndex)<-[:RESOURCE]-(:AWSAccount)
32
- class DynamoDBGSIToAWSAccount(CartographyRelSchema):
33
- target_node_label: str = 'AWSAccount'
36
+ class DynamoDBGSIToAWSAccountRel(CartographyRelSchema):
37
+ target_node_label: str = "AWSAccount"
34
38
  target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
35
- {'id': PropertyRef('AWS_ID', set_in_kwargs=True)},
39
+ {"id": PropertyRef("AWS_ID", set_in_kwargs=True)},
36
40
  )
37
41
  direction: LinkDirection = LinkDirection.INWARD
38
42
  rel_label: str = "RESOURCE"
39
- properties: DynamoDBGSIToAwsAccountRelProperties = DynamoDBGSIToAwsAccountRelProperties()
43
+ properties: DynamoDBGSIToAWSAccountRelRelProperties = (
44
+ DynamoDBGSIToAWSAccountRelRelProperties()
45
+ )
40
46
 
41
47
 
42
48
  @dataclass(frozen=True)
43
- class DynamoDBGSIToDynamoDBTableRelProperties(CartographyRelProperties):
44
- lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
49
+ class DynamoDBGSIToDynamoDBTableRelRelProperties(CartographyRelProperties):
50
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
45
51
 
46
52
 
47
53
  @dataclass(frozen=True)
48
54
  # (:DynamoDBGlobalSecondaryIndex)<-[:GLOBAL_SECONDARY_INDEX]-(:DynamoDBTable)
49
- class DynamoDBGSIToDynamoDBTable(CartographyRelSchema):
50
- target_node_label: str = 'DynamoDBTable'
55
+ class DynamoDBGSIToDynamoDBTableRel(CartographyRelSchema):
56
+ target_node_label: str = "DynamoDBTable"
51
57
  target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
52
- {'arn': PropertyRef('TableArn')},
58
+ {"arn": PropertyRef("TableArn")},
53
59
  )
54
60
  direction: LinkDirection = LinkDirection.INWARD
55
61
  rel_label: str = "GLOBAL_SECONDARY_INDEX"
56
- properties: DynamoDBGSIToDynamoDBTableRelProperties = DynamoDBGSIToDynamoDBTableRelProperties()
62
+ properties: DynamoDBGSIToDynamoDBTableRelRelProperties = (
63
+ DynamoDBGSIToDynamoDBTableRelRelProperties()
64
+ )
57
65
 
58
66
 
59
67
  @dataclass(frozen=True)
60
68
  class DynamoDBGSISchema(CartographyNodeSchema):
61
- label: str = 'DynamoDBGlobalSecondaryIndex'
69
+ label: str = "DynamoDBGlobalSecondaryIndex"
62
70
  properties: DynamoDBGSINodeProperties = DynamoDBGSINodeProperties()
63
- sub_resource_relationship: DynamoDBGSIToAWSAccount = DynamoDBGSIToAWSAccount()
71
+ sub_resource_relationship: DynamoDBGSIToAWSAccountRel = DynamoDBGSIToAWSAccountRel()
64
72
  other_relationships: OtherRelationships = OtherRelationships(
65
73
  [
66
- DynamoDBGSIToDynamoDBTable(),
74
+ DynamoDBGSIToDynamoDBTableRel(),
67
75
  ],
68
76
  )
@@ -12,36 +12,44 @@ from cartography.models.core.relationships import TargetNodeMatcher
12
12
 
13
13
  @dataclass(frozen=True)
14
14
  class DynamoDBTableNodeProperties(CartographyNodeProperties):
15
- id: PropertyRef = PropertyRef('Arn')
16
- arn: PropertyRef = PropertyRef('Arn')
17
- name: PropertyRef = PropertyRef('TableName')
18
- region: PropertyRef = PropertyRef('Region', set_in_kwargs=True)
19
- lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
20
- rows: PropertyRef = PropertyRef('Rows')
21
- size: PropertyRef = PropertyRef('Size')
22
- provisioned_throughput_read_capacity_units: PropertyRef = PropertyRef('ProvisionedThroughputReadCapacityUnits')
23
- provisioned_throughput_write_capacity_units: PropertyRef = PropertyRef('ProvisionedThroughputWriteCapacityUnits')
15
+ id: PropertyRef = PropertyRef("Arn")
16
+ arn: PropertyRef = PropertyRef("Arn")
17
+ name: PropertyRef = PropertyRef("TableName")
18
+ region: PropertyRef = PropertyRef("Region", set_in_kwargs=True)
19
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
20
+ rows: PropertyRef = PropertyRef("Rows")
21
+ size: PropertyRef = PropertyRef("Size")
22
+ provisioned_throughput_read_capacity_units: PropertyRef = PropertyRef(
23
+ "ProvisionedThroughputReadCapacityUnits",
24
+ )
25
+ provisioned_throughput_write_capacity_units: PropertyRef = PropertyRef(
26
+ "ProvisionedThroughputWriteCapacityUnits",
27
+ )
24
28
 
25
29
 
26
30
  @dataclass(frozen=True)
27
- class DynamoDBTableToAwsAccountRelProperties(CartographyRelProperties):
28
- lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
31
+ class DynamoDBTableToAWSAccountRelRelProperties(CartographyRelProperties):
32
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
29
33
 
30
34
 
31
35
  @dataclass(frozen=True)
32
36
  # (:DynamoDBTable)<-[:RESOURCE]-(:AWSAccount)
33
- class DynamoDBTableToAWSAccount(CartographyRelSchema):
34
- target_node_label: str = 'AWSAccount'
37
+ class DynamoDBTableToAWSAccountRel(CartographyRelSchema):
38
+ target_node_label: str = "AWSAccount"
35
39
  target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
36
- {'id': PropertyRef('AWS_ID', set_in_kwargs=True)},
40
+ {"id": PropertyRef("AWS_ID", set_in_kwargs=True)},
37
41
  )
38
42
  direction: LinkDirection = LinkDirection.INWARD
39
43
  rel_label: str = "RESOURCE"
40
- properties: DynamoDBTableToAwsAccountRelProperties = DynamoDBTableToAwsAccountRelProperties()
44
+ properties: DynamoDBTableToAWSAccountRelRelProperties = (
45
+ DynamoDBTableToAWSAccountRelRelProperties()
46
+ )
41
47
 
42
48
 
43
49
  @dataclass(frozen=True)
44
50
  class DynamoDBTableSchema(CartographyNodeSchema):
45
- label: str = 'DynamoDBTable'
51
+ label: str = "DynamoDBTable"
46
52
  properties: DynamoDBTableNodeProperties = DynamoDBTableNodeProperties()
47
- sub_resource_relationship: DynamoDBTableToAWSAccount = DynamoDBTableToAWSAccount()
53
+ sub_resource_relationship: DynamoDBTableToAWSAccountRel = (
54
+ DynamoDBTableToAWSAccountRel()
55
+ )
@@ -13,192 +13,212 @@ from cartography.models.core.relationships import TargetNodeMatcher
13
13
 
14
14
  @dataclass(frozen=True)
15
15
  class AutoScalingGroupNodeProperties(CartographyNodeProperties):
16
- id: PropertyRef = PropertyRef('AutoScalingGroupARN')
17
- arn: PropertyRef = PropertyRef('AutoScalingGroupARN')
18
- capacityrebalance: PropertyRef = PropertyRef('CapacityRebalance')
19
- createdtime: PropertyRef = PropertyRef('CreatedTime')
20
- defaultcooldown: PropertyRef = PropertyRef('DefaultCooldown')
21
- desiredcapacity: PropertyRef = PropertyRef('DesiredCapacity')
22
- healthcheckgraceperiod: PropertyRef = PropertyRef('HealthCheckGracePeriod')
23
- healthchecktype: PropertyRef = PropertyRef('HealthCheckType')
24
- launchconfigurationname: PropertyRef = PropertyRef('LaunchConfigurationName')
25
- launchtemplatename: PropertyRef = PropertyRef('LaunchTemplateName')
26
- launchtemplateid: PropertyRef = PropertyRef('LaunchTemplateId')
27
- launchtemplateversion: PropertyRef = PropertyRef('LaunchTemplateVersion')
28
- maxinstancelifetime: PropertyRef = PropertyRef('MaxInstanceLifetime')
29
- maxsize: PropertyRef = PropertyRef('MaxSize')
30
- minsize: PropertyRef = PropertyRef('MinSize')
31
- name: PropertyRef = PropertyRef('AutoScalingGroupName')
32
- newinstancesprotectedfromscalein: PropertyRef = PropertyRef('NewInstancesProtectedFromScaleIn')
33
- region: PropertyRef = PropertyRef('Region', set_in_kwargs=True)
34
- status: PropertyRef = PropertyRef('Status')
35
- lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
16
+ id: PropertyRef = PropertyRef("AutoScalingGroupARN")
17
+ arn: PropertyRef = PropertyRef("AutoScalingGroupARN")
18
+ capacityrebalance: PropertyRef = PropertyRef("CapacityRebalance")
19
+ createdtime: PropertyRef = PropertyRef("CreatedTime")
20
+ defaultcooldown: PropertyRef = PropertyRef("DefaultCooldown")
21
+ desiredcapacity: PropertyRef = PropertyRef("DesiredCapacity")
22
+ healthcheckgraceperiod: PropertyRef = PropertyRef("HealthCheckGracePeriod")
23
+ healthchecktype: PropertyRef = PropertyRef("HealthCheckType")
24
+ launchconfigurationname: PropertyRef = PropertyRef("LaunchConfigurationName")
25
+ launchtemplatename: PropertyRef = PropertyRef("LaunchTemplateName")
26
+ launchtemplateid: PropertyRef = PropertyRef("LaunchTemplateId")
27
+ launchtemplateversion: PropertyRef = PropertyRef("LaunchTemplateVersion")
28
+ maxinstancelifetime: PropertyRef = PropertyRef("MaxInstanceLifetime")
29
+ maxsize: PropertyRef = PropertyRef("MaxSize")
30
+ minsize: PropertyRef = PropertyRef("MinSize")
31
+ name: PropertyRef = PropertyRef("AutoScalingGroupName")
32
+ newinstancesprotectedfromscalein: PropertyRef = PropertyRef(
33
+ "NewInstancesProtectedFromScaleIn",
34
+ )
35
+ region: PropertyRef = PropertyRef("Region", set_in_kwargs=True)
36
+ status: PropertyRef = PropertyRef("Status")
37
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
36
38
 
37
39
 
38
40
  # EC2 to AutoScalingGroup
39
41
  @dataclass(frozen=True)
40
- class EC2InstanceToAwsAccountRelProperties(CartographyRelProperties):
41
- lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
42
+ class EC2InstanceToAWSAccountRelRelProperties(CartographyRelProperties):
43
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
42
44
 
43
45
 
44
46
  @dataclass(frozen=True)
45
- class EC2InstanceToAWSAccount(CartographyRelSchema):
46
- target_node_label: str = 'AWSAccount'
47
+ class EC2InstanceToAWSAccountRel(CartographyRelSchema):
48
+ target_node_label: str = "AWSAccount"
47
49
  target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
48
- {'id': PropertyRef('AWS_ID', set_in_kwargs=True)},
50
+ {"id": PropertyRef("AWS_ID", set_in_kwargs=True)},
49
51
  )
50
52
  direction: LinkDirection = LinkDirection.INWARD
51
53
  rel_label: str = "RESOURCE"
52
- properties: EC2InstanceToAwsAccountRelProperties = EC2InstanceToAwsAccountRelProperties()
54
+ properties: EC2InstanceToAWSAccountRelRelProperties = (
55
+ EC2InstanceToAWSAccountRelRelProperties()
56
+ )
53
57
 
54
58
 
55
59
  @dataclass(frozen=True)
56
- class EC2InstanceToAutoScalingGroupRelProperties(CartographyRelProperties):
57
- lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
60
+ class EC2InstanceToAutoScalingGroupRelRelProperties(CartographyRelProperties):
61
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
58
62
 
59
63
 
60
64
  @dataclass(frozen=True)
61
- class EC2InstanceToAutoScalingGroup(CartographyRelSchema):
62
- target_node_label: str = 'AutoScalingGroup'
65
+ class EC2InstanceToAutoScalingGroupRel(CartographyRelSchema):
66
+ target_node_label: str = "AutoScalingGroup"
63
67
  target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
64
- {'id': PropertyRef('AutoScalingGroupARN')},
68
+ {"id": PropertyRef("AutoScalingGroupARN")},
65
69
  )
66
70
  direction: LinkDirection = LinkDirection.OUTWARD
67
71
  rel_label: str = "MEMBER_AUTO_SCALE_GROUP"
68
- properties: EC2InstanceToAutoScalingGroupRelProperties = EC2InstanceToAutoScalingGroupRelProperties()
72
+ properties: EC2InstanceToAutoScalingGroupRelRelProperties = (
73
+ EC2InstanceToAutoScalingGroupRelRelProperties()
74
+ )
69
75
 
70
76
 
71
77
  @dataclass(frozen=True)
72
78
  class EC2InstanceAutoScalingGroupProperties(CartographyNodeProperties):
73
- id: PropertyRef = PropertyRef('InstanceId')
74
- instanceid: PropertyRef = PropertyRef('InstanceId', extra_index=True)
75
- lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
76
- region: PropertyRef = PropertyRef('Region', set_in_kwargs=True)
79
+ id: PropertyRef = PropertyRef("InstanceId")
80
+ instanceid: PropertyRef = PropertyRef("InstanceId", extra_index=True)
81
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
82
+ region: PropertyRef = PropertyRef("Region", set_in_kwargs=True)
77
83
 
78
84
 
79
85
  @dataclass(frozen=True)
80
86
  class EC2InstanceAutoScalingGroupSchema(CartographyNodeSchema):
81
- label: str = 'EC2Instance'
82
- properties: EC2InstanceAutoScalingGroupProperties = EC2InstanceAutoScalingGroupProperties()
83
- sub_resource_relationship: EC2InstanceToAWSAccount = EC2InstanceToAWSAccount()
87
+ label: str = "EC2Instance"
88
+ properties: EC2InstanceAutoScalingGroupProperties = (
89
+ EC2InstanceAutoScalingGroupProperties()
90
+ )
91
+ sub_resource_relationship: EC2InstanceToAWSAccountRel = EC2InstanceToAWSAccountRel()
84
92
  other_relationships: OtherRelationships = OtherRelationships(
85
93
  [
86
- EC2InstanceToAutoScalingGroup(),
94
+ EC2InstanceToAutoScalingGroupRel(),
87
95
  ],
88
96
  )
89
97
 
90
98
 
91
99
  # EC2Subnet to AutoScalingGroup
92
100
  @dataclass(frozen=True)
93
- class EC2SubnetToAwsAccountRelProperties(CartographyRelProperties):
94
- lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
101
+ class EC2SubnetToAWSAccountRelRelProperties(CartographyRelProperties):
102
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
95
103
 
96
104
 
97
105
  @dataclass(frozen=True)
98
- class EC2SubnetToAWSAccount(CartographyRelSchema):
99
- target_node_label: str = 'AWSAccount'
106
+ class EC2SubnetToAWSAccountRel(CartographyRelSchema):
107
+ target_node_label: str = "AWSAccount"
100
108
  target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
101
- {'id': PropertyRef('AWS_ID', set_in_kwargs=True)},
109
+ {"id": PropertyRef("AWS_ID", set_in_kwargs=True)},
102
110
  )
103
111
  direction: LinkDirection = LinkDirection.INWARD
104
112
  rel_label: str = "RESOURCE"
105
- properties: EC2SubnetToAwsAccountRelProperties = EC2SubnetToAwsAccountRelProperties()
113
+ properties: EC2SubnetToAWSAccountRelRelProperties = (
114
+ EC2SubnetToAWSAccountRelRelProperties()
115
+ )
106
116
 
107
117
 
108
118
  @dataclass(frozen=True)
109
- class EC2SubnetToAutoScalingGroupRelProperties(CartographyRelProperties):
110
- lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
119
+ class EC2SubnetToAutoScalingGroupRelRelProperties(CartographyRelProperties):
120
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
111
121
 
112
122
 
113
123
  @dataclass(frozen=True)
114
- class EC2SubnetToAutoScalingGroup(CartographyRelSchema):
115
- target_node_label: str = 'AutoScalingGroup'
124
+ class EC2SubnetToAutoScalingGroupRel(CartographyRelSchema):
125
+ target_node_label: str = "AutoScalingGroup"
116
126
  target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
117
- {'id': PropertyRef('AutoScalingGroupARN')},
127
+ {"id": PropertyRef("AutoScalingGroupARN")},
118
128
  )
119
129
  direction: LinkDirection = LinkDirection.INWARD
120
130
  rel_label: str = "VPC_IDENTIFIER"
121
- properties: EC2SubnetToAutoScalingGroupRelProperties = EC2SubnetToAutoScalingGroupRelProperties()
131
+ properties: EC2SubnetToAutoScalingGroupRelRelProperties = (
132
+ EC2SubnetToAutoScalingGroupRelRelProperties()
133
+ )
122
134
 
123
135
 
124
136
  @dataclass(frozen=True)
125
137
  class EC2SubnetAutoScalingGroupNodeProperties(CartographyNodeProperties):
126
- id: PropertyRef = PropertyRef('VPCZoneIdentifier')
127
- subnetid: PropertyRef = PropertyRef('VPCZoneIdentifier', extra_index=True)
128
- lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
138
+ id: PropertyRef = PropertyRef("VPCZoneIdentifier")
139
+ subnetid: PropertyRef = PropertyRef("VPCZoneIdentifier", extra_index=True)
140
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
129
141
 
130
142
 
131
143
  @dataclass(frozen=True)
132
144
  class EC2SubnetAutoScalingGroupSchema(CartographyNodeSchema):
133
- label: str = 'EC2Subnet'
134
- properties: EC2SubnetAutoScalingGroupNodeProperties = EC2SubnetAutoScalingGroupNodeProperties()
135
- sub_resource_relationship: EC2SubnetToAWSAccount = EC2SubnetToAWSAccount()
145
+ label: str = "EC2Subnet"
146
+ properties: EC2SubnetAutoScalingGroupNodeProperties = (
147
+ EC2SubnetAutoScalingGroupNodeProperties()
148
+ )
149
+ sub_resource_relationship: EC2SubnetToAWSAccountRel = EC2SubnetToAWSAccountRel()
136
150
  other_relationships: OtherRelationships = OtherRelationships(
137
151
  [
138
- EC2SubnetToAutoScalingGroup(),
152
+ EC2SubnetToAutoScalingGroupRel(),
139
153
  ],
140
154
  )
141
155
 
142
156
 
143
157
  # AutoScalingGroup
144
158
  @dataclass(frozen=True)
145
- class AutoScalingGroupToAwsAccountRelProperties(CartographyRelProperties):
146
- lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
159
+ class AutoScalingGroupToAWSAccountRelRelProperties(CartographyRelProperties):
160
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
147
161
 
148
162
 
149
163
  @dataclass(frozen=True)
150
- class AutoScalingGroupToAWSAccount(CartographyRelSchema):
151
- target_node_label: str = 'AWSAccount'
164
+ class AutoScalingGroupToAWSAccountRel(CartographyRelSchema):
165
+ target_node_label: str = "AWSAccount"
152
166
  target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
153
- {'id': PropertyRef('AWS_ID', set_in_kwargs=True)},
167
+ {"id": PropertyRef("AWS_ID", set_in_kwargs=True)},
154
168
  )
155
169
  direction: LinkDirection = LinkDirection.INWARD
156
170
  rel_label: str = "RESOURCE"
157
- properties: AutoScalingGroupToAwsAccountRelProperties = AutoScalingGroupToAwsAccountRelProperties()
171
+ properties: AutoScalingGroupToAWSAccountRelRelProperties = (
172
+ AutoScalingGroupToAWSAccountRelRelProperties()
173
+ )
158
174
 
159
175
 
160
176
  @dataclass(frozen=True)
161
- class AutoScalingGroupToLaunchTemplateRelProperties(CartographyRelProperties):
162
- lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
177
+ class AutoScalingGroupToLaunchTemplateRelRelProperties(CartographyRelProperties):
178
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
163
179
 
164
180
 
165
181
  @dataclass(frozen=True)
166
- class AutoScalingGroupToLaunchTemplate(CartographyRelSchema):
167
- target_node_label: str = 'LaunchTemplate'
182
+ class AutoScalingGroupToLaunchTemplateRel(CartographyRelSchema):
183
+ target_node_label: str = "LaunchTemplate"
168
184
  target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
169
- {'id': PropertyRef('LaunchTemplateId')},
185
+ {"id": PropertyRef("LaunchTemplateId")},
170
186
  )
171
187
  direction: LinkDirection = LinkDirection.OUTWARD
172
188
  rel_label: str = "HAS_LAUNCH_TEMPLATE"
173
- properties: AutoScalingGroupToLaunchTemplateRelProperties = AutoScalingGroupToLaunchTemplateRelProperties()
189
+ properties: AutoScalingGroupToLaunchTemplateRelRelProperties = (
190
+ AutoScalingGroupToLaunchTemplateRelRelProperties()
191
+ )
174
192
 
175
193
 
176
194
  @dataclass(frozen=True)
177
- class AutoScalingGroupToLaunchConfigurationRelProperties(CartographyRelProperties):
178
- lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
195
+ class AutoScalingGroupToLaunchConfigurationRelRelProperties(CartographyRelProperties):
196
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
179
197
 
180
198
 
181
199
  @dataclass(frozen=True)
182
- class AutoScalingGroupToLaunchConfiguration(CartographyRelSchema):
183
- target_node_label: str = 'LaunchConfiguration'
200
+ class AutoScalingGroupToLaunchConfigurationRel(CartographyRelSchema):
201
+ target_node_label: str = "LaunchConfiguration"
184
202
  target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
185
- {'name': PropertyRef('LaunchConfigurationName')},
203
+ {"name": PropertyRef("LaunchConfigurationName")},
186
204
  )
187
205
  direction: LinkDirection = LinkDirection.OUTWARD
188
206
  rel_label: str = "HAS_LAUNCH_CONFIG"
189
- properties: AutoScalingGroupToLaunchConfigurationRelProperties = (
190
- AutoScalingGroupToLaunchConfigurationRelProperties()
207
+ properties: AutoScalingGroupToLaunchConfigurationRelRelProperties = (
208
+ AutoScalingGroupToLaunchConfigurationRelRelProperties()
191
209
  )
192
210
 
193
211
 
194
212
  @dataclass(frozen=True)
195
213
  class AutoScalingGroupSchema(CartographyNodeSchema):
196
- label: str = 'AutoScalingGroup'
214
+ label: str = "AutoScalingGroup"
197
215
  properties: AutoScalingGroupNodeProperties = AutoScalingGroupNodeProperties()
198
- sub_resource_relationship: AutoScalingGroupToAWSAccount = AutoScalingGroupToAWSAccount()
216
+ sub_resource_relationship: AutoScalingGroupToAWSAccountRel = (
217
+ AutoScalingGroupToAWSAccountRel()
218
+ )
199
219
  other_relationships: OtherRelationships = OtherRelationships(
200
220
  [
201
- AutoScalingGroupToLaunchTemplate(),
202
- AutoScalingGroupToLaunchConfiguration(),
221
+ AutoScalingGroupToLaunchTemplateRel(),
222
+ AutoScalingGroupToLaunchConfigurationRel(),
203
223
  ],
204
224
  )
@@ -12,52 +12,54 @@ from cartography.models.core.relationships import TargetNodeMatcher
12
12
 
13
13
  @dataclass(frozen=True)
14
14
  class EC2ImageNodeProperties(CartographyNodeProperties):
15
- id: PropertyRef = PropertyRef('ID')
16
- imageid: PropertyRef = PropertyRef('ImageId', extra_index=True)
17
- name: PropertyRef = PropertyRef('Name', extra_index=True)
18
- creationdate: PropertyRef = PropertyRef('CreationDate')
19
- architecture: PropertyRef = PropertyRef('Architecture')
20
- location: PropertyRef = PropertyRef('ImageLocation')
21
- type: PropertyRef = PropertyRef('ImageType')
22
- ispublic: PropertyRef = PropertyRef('Public')
23
- platform: PropertyRef = PropertyRef('Platform')
24
- platform_details: PropertyRef = PropertyRef('PlatformDetails')
25
- usageoperation: PropertyRef = PropertyRef('UsageOperation')
26
- state: PropertyRef = PropertyRef('State')
27
- description: PropertyRef = PropertyRef('Description')
28
- enasupport: PropertyRef = PropertyRef('EnaSupport')
29
- hypervisor: PropertyRef = PropertyRef('Hypervisor')
30
- rootdevicename: PropertyRef = PropertyRef('RootDeviceName')
31
- rootdevicetype: PropertyRef = PropertyRef('RootDeviceType')
32
- virtualizationtype: PropertyRef = PropertyRef('VirtualizationType')
33
- sriov_net_support: PropertyRef = PropertyRef('SriovNetSupport')
34
- bootmode: PropertyRef = PropertyRef('BootMode')
35
- owner: PropertyRef = PropertyRef('OwnerId')
36
- image_owner_alias: PropertyRef = PropertyRef('ImageOwnerAlias')
37
- kernel_id: PropertyRef = PropertyRef('KernelId')
38
- ramdisk_id: PropertyRef = PropertyRef('RamdiskId')
39
- region: PropertyRef = PropertyRef('Region')
40
- lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
15
+ id: PropertyRef = PropertyRef("ID")
16
+ imageid: PropertyRef = PropertyRef("ImageId", extra_index=True)
17
+ name: PropertyRef = PropertyRef("Name", extra_index=True)
18
+ creationdate: PropertyRef = PropertyRef("CreationDate")
19
+ architecture: PropertyRef = PropertyRef("Architecture")
20
+ location: PropertyRef = PropertyRef("ImageLocation")
21
+ type: PropertyRef = PropertyRef("ImageType")
22
+ ispublic: PropertyRef = PropertyRef("Public")
23
+ platform: PropertyRef = PropertyRef("Platform")
24
+ platform_details: PropertyRef = PropertyRef("PlatformDetails")
25
+ usageoperation: PropertyRef = PropertyRef("UsageOperation")
26
+ state: PropertyRef = PropertyRef("State")
27
+ description: PropertyRef = PropertyRef("Description")
28
+ enasupport: PropertyRef = PropertyRef("EnaSupport")
29
+ hypervisor: PropertyRef = PropertyRef("Hypervisor")
30
+ rootdevicename: PropertyRef = PropertyRef("RootDeviceName")
31
+ rootdevicetype: PropertyRef = PropertyRef("RootDeviceType")
32
+ virtualizationtype: PropertyRef = PropertyRef("VirtualizationType")
33
+ sriov_net_support: PropertyRef = PropertyRef("SriovNetSupport")
34
+ bootmode: PropertyRef = PropertyRef("BootMode")
35
+ owner: PropertyRef = PropertyRef("OwnerId")
36
+ image_owner_alias: PropertyRef = PropertyRef("ImageOwnerAlias")
37
+ kernel_id: PropertyRef = PropertyRef("KernelId")
38
+ ramdisk_id: PropertyRef = PropertyRef("RamdiskId")
39
+ region: PropertyRef = PropertyRef("Region")
40
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
41
41
 
42
42
 
43
43
  @dataclass(frozen=True)
44
- class EC2ImageToAwsAccountRelProperties(CartographyRelProperties):
45
- lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
44
+ class EC2ImageToAWSAccountRelRelProperties(CartographyRelProperties):
45
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
46
46
 
47
47
 
48
48
  @dataclass(frozen=True)
49
- class EC2ImageToAWSAccount(CartographyRelSchema):
50
- target_node_label: str = 'AWSAccount'
49
+ class EC2ImageToAWSAccountRel(CartographyRelSchema):
50
+ target_node_label: str = "AWSAccount"
51
51
  target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
52
- {'id': PropertyRef('AWS_ID', set_in_kwargs=True)},
52
+ {"id": PropertyRef("AWS_ID", set_in_kwargs=True)},
53
53
  )
54
54
  direction: LinkDirection = LinkDirection.INWARD
55
55
  rel_label: str = "RESOURCE"
56
- properties: EC2ImageToAwsAccountRelProperties = EC2ImageToAwsAccountRelProperties()
56
+ properties: EC2ImageToAWSAccountRelRelProperties = (
57
+ EC2ImageToAWSAccountRelRelProperties()
58
+ )
57
59
 
58
60
 
59
61
  @dataclass(frozen=True)
60
62
  class EC2ImageSchema(CartographyNodeSchema):
61
- label: str = 'EC2Image'
63
+ label: str = "EC2Image"
62
64
  properties: EC2ImageNodeProperties = EC2ImageNodeProperties()
63
- sub_resource_relationship: EC2ImageToAWSAccount = EC2ImageToAWSAccount()
65
+ sub_resource_relationship: EC2ImageToAWSAccountRel = EC2ImageToAWSAccountRel()