@cloud-copilot/iam-collect 0.1.131 → 0.1.133

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.
Files changed (350) hide show
  1. package/README.md +16 -8
  2. package/dist/cjs/aws/ClientPool.d.ts +21 -3
  3. package/dist/cjs/aws/ClientPool.d.ts.map +1 -1
  4. package/dist/cjs/aws/ClientPool.js +22 -0
  5. package/dist/cjs/aws/ClientPool.js.map +1 -1
  6. package/dist/cjs/awsConfigClients/AwsConfigClientContext.d.ts +15 -0
  7. package/dist/cjs/awsConfigClients/AwsConfigClientContext.d.ts.map +1 -0
  8. package/dist/cjs/awsConfigClients/AwsConfigClientContext.js +6 -0
  9. package/dist/cjs/awsConfigClients/AwsConfigClientContext.js.map +1 -0
  10. package/dist/cjs/awsConfigClients/AwsConfigClientPool.d.ts +40 -0
  11. package/dist/cjs/awsConfigClients/AwsConfigClientPool.d.ts.map +1 -0
  12. package/dist/cjs/awsConfigClients/AwsConfigClientPool.js +132 -0
  13. package/dist/cjs/awsConfigClients/AwsConfigClientPool.js.map +1 -0
  14. package/dist/cjs/awsConfigClients/awsConfigUtils.d.ts +30 -0
  15. package/dist/cjs/awsConfigClients/awsConfigUtils.d.ts.map +1 -0
  16. package/dist/cjs/awsConfigClients/awsConfigUtils.js +64 -0
  17. package/dist/cjs/awsConfigClients/awsConfigUtils.js.map +1 -0
  18. package/dist/cjs/awsConfigClients/clients/AwsConfigAccountClient.d.ts +18 -0
  19. package/dist/cjs/awsConfigClients/clients/AwsConfigAccountClient.d.ts.map +1 -0
  20. package/dist/cjs/awsConfigClients/clients/AwsConfigAccountClient.js +60 -0
  21. package/dist/cjs/awsConfigClients/clients/AwsConfigAccountClient.js.map +1 -0
  22. package/dist/cjs/awsConfigClients/clients/AwsConfigApiGatewayClient.d.ts +21 -0
  23. package/dist/cjs/awsConfigClients/clients/AwsConfigApiGatewayClient.d.ts.map +1 -0
  24. package/dist/cjs/awsConfigClients/clients/AwsConfigApiGatewayClient.js +37 -0
  25. package/dist/cjs/awsConfigClients/clients/AwsConfigApiGatewayClient.js.map +1 -0
  26. package/dist/cjs/awsConfigClients/clients/AwsConfigBackupClient.d.ts +18 -0
  27. package/dist/cjs/awsConfigClients/clients/AwsConfigBackupClient.d.ts.map +1 -0
  28. package/dist/cjs/awsConfigClients/clients/AwsConfigBackupClient.js +98 -0
  29. package/dist/cjs/awsConfigClients/clients/AwsConfigBackupClient.js.map +1 -0
  30. package/dist/cjs/awsConfigClients/clients/AwsConfigDynamoDBClient.d.ts +21 -0
  31. package/dist/cjs/awsConfigClients/clients/AwsConfigDynamoDBClient.d.ts.map +1 -0
  32. package/dist/cjs/awsConfigClients/clients/AwsConfigDynamoDBClient.js +60 -0
  33. package/dist/cjs/awsConfigClients/clients/AwsConfigDynamoDBClient.js.map +1 -0
  34. package/dist/cjs/awsConfigClients/clients/AwsConfigEC2Client.d.ts +18 -0
  35. package/dist/cjs/awsConfigClients/clients/AwsConfigEC2Client.d.ts.map +1 -0
  36. package/dist/cjs/awsConfigClients/clients/AwsConfigEC2Client.js +61 -0
  37. package/dist/cjs/awsConfigClients/clients/AwsConfigEC2Client.js.map +1 -0
  38. package/dist/cjs/awsConfigClients/clients/AwsConfigEcrClient.d.ts +18 -0
  39. package/dist/cjs/awsConfigClients/clients/AwsConfigEcrClient.d.ts.map +1 -0
  40. package/dist/cjs/awsConfigClients/clients/AwsConfigEcrClient.js +122 -0
  41. package/dist/cjs/awsConfigClients/clients/AwsConfigEcrClient.js.map +1 -0
  42. package/dist/cjs/awsConfigClients/clients/AwsConfigEfsClient.d.ts +18 -0
  43. package/dist/cjs/awsConfigClients/clients/AwsConfigEfsClient.d.ts.map +1 -0
  44. package/dist/cjs/awsConfigClients/clients/AwsConfigEfsClient.js +89 -0
  45. package/dist/cjs/awsConfigClients/clients/AwsConfigEfsClient.js.map +1 -0
  46. package/dist/cjs/awsConfigClients/clients/AwsConfigEventBridgeClient.d.ts +19 -0
  47. package/dist/cjs/awsConfigClients/clients/AwsConfigEventBridgeClient.d.ts.map +1 -0
  48. package/dist/cjs/awsConfigClients/clients/AwsConfigEventBridgeClient.js +107 -0
  49. package/dist/cjs/awsConfigClients/clients/AwsConfigEventBridgeClient.js.map +1 -0
  50. package/dist/cjs/awsConfigClients/clients/AwsConfigGlueClient.d.ts +21 -0
  51. package/dist/cjs/awsConfigClients/clients/AwsConfigGlueClient.d.ts.map +1 -0
  52. package/dist/cjs/awsConfigClients/clients/AwsConfigGlueClient.js +44 -0
  53. package/dist/cjs/awsConfigClients/clients/AwsConfigGlueClient.js.map +1 -0
  54. package/dist/cjs/awsConfigClients/clients/AwsConfigIamClient.d.ts +18 -0
  55. package/dist/cjs/awsConfigClients/clients/AwsConfigIamClient.d.ts.map +1 -0
  56. package/dist/cjs/awsConfigClients/clients/AwsConfigIamClient.js +439 -0
  57. package/dist/cjs/awsConfigClients/clients/AwsConfigIamClient.js.map +1 -0
  58. package/dist/cjs/awsConfigClients/clients/AwsConfigKafkaClient.d.ts +18 -0
  59. package/dist/cjs/awsConfigClients/clients/AwsConfigKafkaClient.d.ts.map +1 -0
  60. package/dist/cjs/awsConfigClients/clients/AwsConfigKafkaClient.js +145 -0
  61. package/dist/cjs/awsConfigClients/clients/AwsConfigKafkaClient.js.map +1 -0
  62. package/dist/cjs/awsConfigClients/clients/AwsConfigKinesisClient.d.ts +22 -0
  63. package/dist/cjs/awsConfigClients/clients/AwsConfigKinesisClient.d.ts.map +1 -0
  64. package/dist/cjs/awsConfigClients/clients/AwsConfigKinesisClient.js +87 -0
  65. package/dist/cjs/awsConfigClients/clients/AwsConfigKinesisClient.js.map +1 -0
  66. package/dist/cjs/awsConfigClients/clients/AwsConfigKmsClient.d.ts +18 -0
  67. package/dist/cjs/awsConfigClients/clients/AwsConfigKmsClient.d.ts.map +1 -0
  68. package/dist/cjs/awsConfigClients/clients/AwsConfigKmsClient.js +105 -0
  69. package/dist/cjs/awsConfigClients/clients/AwsConfigKmsClient.js.map +1 -0
  70. package/dist/cjs/awsConfigClients/clients/AwsConfigLambdaClient.d.ts +22 -0
  71. package/dist/cjs/awsConfigClients/clients/AwsConfigLambdaClient.d.ts.map +1 -0
  72. package/dist/cjs/awsConfigClients/clients/AwsConfigLambdaClient.js +158 -0
  73. package/dist/cjs/awsConfigClients/clients/AwsConfigLambdaClient.js.map +1 -0
  74. package/dist/cjs/awsConfigClients/clients/AwsConfigOpenSearchClient.d.ts +18 -0
  75. package/dist/cjs/awsConfigClients/clients/AwsConfigOpenSearchClient.d.ts.map +1 -0
  76. package/dist/cjs/awsConfigClients/clients/AwsConfigOpenSearchClient.js +125 -0
  77. package/dist/cjs/awsConfigClients/clients/AwsConfigOpenSearchClient.js.map +1 -0
  78. package/dist/cjs/awsConfigClients/clients/AwsConfigOrganizationsClient.d.ts +22 -0
  79. package/dist/cjs/awsConfigClients/clients/AwsConfigOrganizationsClient.d.ts.map +1 -0
  80. package/dist/cjs/awsConfigClients/clients/AwsConfigOrganizationsClient.js +174 -0
  81. package/dist/cjs/awsConfigClients/clients/AwsConfigOrganizationsClient.js.map +1 -0
  82. package/dist/cjs/awsConfigClients/clients/AwsConfigS3Client.d.ts +15 -0
  83. package/dist/cjs/awsConfigClients/clients/AwsConfigS3Client.d.ts.map +1 -0
  84. package/dist/cjs/awsConfigClients/clients/AwsConfigS3Client.js +239 -0
  85. package/dist/cjs/awsConfigClients/clients/AwsConfigS3Client.js.map +1 -0
  86. package/dist/cjs/awsConfigClients/clients/AwsConfigS3ControlClient.d.ts +25 -0
  87. package/dist/cjs/awsConfigClients/clients/AwsConfigS3ControlClient.d.ts.map +1 -0
  88. package/dist/cjs/awsConfigClients/clients/AwsConfigS3ControlClient.js +293 -0
  89. package/dist/cjs/awsConfigClients/clients/AwsConfigS3ControlClient.js.map +1 -0
  90. package/dist/cjs/awsConfigClients/clients/AwsConfigSNSClient.d.ts +18 -0
  91. package/dist/cjs/awsConfigClients/clients/AwsConfigSNSClient.d.ts.map +1 -0
  92. package/dist/cjs/awsConfigClients/clients/AwsConfigSNSClient.js +114 -0
  93. package/dist/cjs/awsConfigClients/clients/AwsConfigSNSClient.js.map +1 -0
  94. package/dist/cjs/awsConfigClients/clients/AwsConfigSQSClient.d.ts +18 -0
  95. package/dist/cjs/awsConfigClients/clients/AwsConfigSQSClient.d.ts.map +1 -0
  96. package/dist/cjs/awsConfigClients/clients/AwsConfigSQSClient.js +105 -0
  97. package/dist/cjs/awsConfigClients/clients/AwsConfigSQSClient.js.map +1 -0
  98. package/dist/cjs/awsConfigClients/clients/AwsConfigSecretsManagerClient.d.ts +21 -0
  99. package/dist/cjs/awsConfigClients/clients/AwsConfigSecretsManagerClient.d.ts.map +1 -0
  100. package/dist/cjs/awsConfigClients/clients/AwsConfigSecretsManagerClient.js +50 -0
  101. package/dist/cjs/awsConfigClients/clients/AwsConfigSecretsManagerClient.js.map +1 -0
  102. package/dist/cjs/config/config.d.ts +18 -0
  103. package/dist/cjs/config/config.d.ts.map +1 -1
  104. package/dist/cjs/config/config.js +16 -0
  105. package/dist/cjs/config/config.js.map +1 -1
  106. package/dist/cjs/config/dataSource.d.ts +11 -0
  107. package/dist/cjs/config/dataSource.d.ts.map +1 -0
  108. package/dist/cjs/config/dataSource.js +27 -0
  109. package/dist/cjs/config/dataSource.js.map +1 -0
  110. package/dist/cjs/customClients/AbstractClient.d.ts +45 -0
  111. package/dist/cjs/customClients/AbstractClient.d.ts.map +1 -0
  112. package/dist/cjs/customClients/AbstractClient.js +75 -0
  113. package/dist/cjs/customClients/AbstractClient.js.map +1 -0
  114. package/dist/cjs/customClients/AbstractClientPool.d.ts +53 -0
  115. package/dist/cjs/customClients/AbstractClientPool.d.ts.map +1 -0
  116. package/dist/cjs/customClients/AbstractClientPool.js +66 -0
  117. package/dist/cjs/customClients/AbstractClientPool.js.map +1 -0
  118. package/dist/cjs/customClients/AbstractCommand.d.ts +56 -0
  119. package/dist/cjs/customClients/AbstractCommand.d.ts.map +1 -0
  120. package/dist/cjs/customClients/AbstractCommand.js +19 -0
  121. package/dist/cjs/customClients/AbstractCommand.js.map +1 -0
  122. package/dist/cjs/customClients/ResourceNotFoundException.d.ts +23 -0
  123. package/dist/cjs/customClients/ResourceNotFoundException.d.ts.map +1 -0
  124. package/dist/cjs/customClients/ResourceNotFoundException.js +37 -0
  125. package/dist/cjs/customClients/ResourceNotFoundException.js.map +1 -0
  126. package/dist/cjs/download/download.d.ts.map +1 -1
  127. package/dist/cjs/download/download.js +65 -28
  128. package/dist/cjs/download/download.js.map +1 -1
  129. package/dist/cjs/regions.d.ts +2 -1
  130. package/dist/cjs/regions.d.ts.map +1 -1
  131. package/dist/cjs/regions.js +2 -2
  132. package/dist/cjs/regions.js.map +1 -1
  133. package/dist/cjs/syncs/dynamodb/dynamoDbStreams.d.ts.map +1 -1
  134. package/dist/cjs/syncs/dynamodb/dynamoDbStreams.js +2 -3
  135. package/dist/cjs/syncs/dynamodb/dynamoDbStreams.js.map +1 -1
  136. package/dist/cjs/syncs/ecr/ecrSyncs.d.ts.map +1 -1
  137. package/dist/cjs/syncs/ecr/ecrSyncs.js +1 -2
  138. package/dist/cjs/syncs/ecr/ecrSyncs.js.map +1 -1
  139. package/dist/cjs/syncs/glue/catalogs.d.ts.map +1 -1
  140. package/dist/cjs/syncs/glue/catalogs.js +1 -2
  141. package/dist/cjs/syncs/glue/catalogs.js.map +1 -1
  142. package/dist/cjs/syncs/iam/authorizationDetails.d.ts.map +1 -1
  143. package/dist/cjs/syncs/iam/authorizationDetails.js +1 -2
  144. package/dist/cjs/syncs/iam/authorizationDetails.js.map +1 -1
  145. package/dist/cjs/syncs/lambda/lambda.d.ts.map +1 -1
  146. package/dist/cjs/syncs/lambda/lambda.js +1 -2
  147. package/dist/cjs/syncs/lambda/lambda.js.map +1 -1
  148. package/dist/cjs/syncs/organizations/organizations.d.ts.map +1 -1
  149. package/dist/cjs/syncs/organizations/organizations.js +1 -2
  150. package/dist/cjs/syncs/organizations/organizations.js.map +1 -1
  151. package/dist/cjs/syncs/ram/ramShares.d.ts.map +1 -1
  152. package/dist/cjs/syncs/ram/ramShares.js +1 -2
  153. package/dist/cjs/syncs/ram/ramShares.js.map +1 -1
  154. package/dist/cjs/syncs/s3/accountBpa.d.ts.map +1 -1
  155. package/dist/cjs/syncs/s3/accountBpa.js +2 -3
  156. package/dist/cjs/syncs/s3/accountBpa.js.map +1 -1
  157. package/dist/cjs/syncs/s3/buckets.js +3 -6
  158. package/dist/cjs/syncs/s3/buckets.js.map +1 -1
  159. package/dist/cjs/syncs/s3outposts/s3OutpostsSyncs.d.ts.map +1 -1
  160. package/dist/cjs/syncs/s3outposts/s3OutpostsSyncs.js +2 -3
  161. package/dist/cjs/syncs/s3outposts/s3OutpostsSyncs.js.map +1 -1
  162. package/dist/cjs/syncs/sso/ssoInstances.d.ts.map +1 -1
  163. package/dist/cjs/syncs/sso/ssoInstances.js +1 -2
  164. package/dist/cjs/syncs/sso/ssoInstances.js.map +1 -1
  165. package/dist/cjs/syncs/sync.d.ts +2 -0
  166. package/dist/cjs/syncs/sync.d.ts.map +1 -1
  167. package/dist/cjs/syncs/sync.js.map +1 -1
  168. package/dist/cjs/syncs/typedSync.d.ts +3 -2
  169. package/dist/cjs/syncs/typedSync.d.ts.map +1 -1
  170. package/dist/cjs/syncs/typedSync.js +4 -4
  171. package/dist/cjs/syncs/typedSync.js.map +1 -1
  172. package/dist/cjs/utils/json.d.ts +7 -0
  173. package/dist/cjs/utils/json.d.ts.map +1 -1
  174. package/dist/cjs/utils/json.js +17 -1
  175. package/dist/cjs/utils/json.js.map +1 -1
  176. package/dist/esm/aws/ClientPool.d.ts +21 -3
  177. package/dist/esm/aws/ClientPool.d.ts.map +1 -1
  178. package/dist/esm/aws/ClientPool.js +22 -0
  179. package/dist/esm/aws/ClientPool.js.map +1 -1
  180. package/dist/esm/awsConfigClients/AwsConfigClientContext.d.ts +15 -0
  181. package/dist/esm/awsConfigClients/AwsConfigClientContext.d.ts.map +1 -0
  182. package/dist/esm/awsConfigClients/AwsConfigClientContext.js +3 -0
  183. package/dist/esm/awsConfigClients/AwsConfigClientContext.js.map +1 -0
  184. package/dist/esm/awsConfigClients/AwsConfigClientPool.d.ts +40 -0
  185. package/dist/esm/awsConfigClients/AwsConfigClientPool.d.ts.map +1 -0
  186. package/dist/esm/awsConfigClients/AwsConfigClientPool.js +124 -0
  187. package/dist/esm/awsConfigClients/AwsConfigClientPool.js.map +1 -0
  188. package/dist/esm/awsConfigClients/awsConfigUtils.d.ts +30 -0
  189. package/dist/esm/awsConfigClients/awsConfigUtils.d.ts.map +1 -0
  190. package/dist/esm/awsConfigClients/awsConfigUtils.js +59 -0
  191. package/dist/esm/awsConfigClients/awsConfigUtils.js.map +1 -0
  192. package/dist/esm/awsConfigClients/clients/AwsConfigAccountClient.d.ts +18 -0
  193. package/dist/esm/awsConfigClients/clients/AwsConfigAccountClient.d.ts.map +1 -0
  194. package/dist/esm/awsConfigClients/clients/AwsConfigAccountClient.js +56 -0
  195. package/dist/esm/awsConfigClients/clients/AwsConfigAccountClient.js.map +1 -0
  196. package/dist/esm/awsConfigClients/clients/AwsConfigApiGatewayClient.d.ts +21 -0
  197. package/dist/esm/awsConfigClients/clients/AwsConfigApiGatewayClient.d.ts.map +1 -0
  198. package/dist/esm/awsConfigClients/clients/AwsConfigApiGatewayClient.js +33 -0
  199. package/dist/esm/awsConfigClients/clients/AwsConfigApiGatewayClient.js.map +1 -0
  200. package/dist/esm/awsConfigClients/clients/AwsConfigBackupClient.d.ts +18 -0
  201. package/dist/esm/awsConfigClients/clients/AwsConfigBackupClient.d.ts.map +1 -0
  202. package/dist/esm/awsConfigClients/clients/AwsConfigBackupClient.js +94 -0
  203. package/dist/esm/awsConfigClients/clients/AwsConfigBackupClient.js.map +1 -0
  204. package/dist/esm/awsConfigClients/clients/AwsConfigDynamoDBClient.d.ts +21 -0
  205. package/dist/esm/awsConfigClients/clients/AwsConfigDynamoDBClient.d.ts.map +1 -0
  206. package/dist/esm/awsConfigClients/clients/AwsConfigDynamoDBClient.js +56 -0
  207. package/dist/esm/awsConfigClients/clients/AwsConfigDynamoDBClient.js.map +1 -0
  208. package/dist/esm/awsConfigClients/clients/AwsConfigEC2Client.d.ts +18 -0
  209. package/dist/esm/awsConfigClients/clients/AwsConfigEC2Client.d.ts.map +1 -0
  210. package/dist/esm/awsConfigClients/clients/AwsConfigEC2Client.js +57 -0
  211. package/dist/esm/awsConfigClients/clients/AwsConfigEC2Client.js.map +1 -0
  212. package/dist/esm/awsConfigClients/clients/AwsConfigEcrClient.d.ts +18 -0
  213. package/dist/esm/awsConfigClients/clients/AwsConfigEcrClient.d.ts.map +1 -0
  214. package/dist/esm/awsConfigClients/clients/AwsConfigEcrClient.js +118 -0
  215. package/dist/esm/awsConfigClients/clients/AwsConfigEcrClient.js.map +1 -0
  216. package/dist/esm/awsConfigClients/clients/AwsConfigEfsClient.d.ts +18 -0
  217. package/dist/esm/awsConfigClients/clients/AwsConfigEfsClient.d.ts.map +1 -0
  218. package/dist/esm/awsConfigClients/clients/AwsConfigEfsClient.js +85 -0
  219. package/dist/esm/awsConfigClients/clients/AwsConfigEfsClient.js.map +1 -0
  220. package/dist/esm/awsConfigClients/clients/AwsConfigEventBridgeClient.d.ts +19 -0
  221. package/dist/esm/awsConfigClients/clients/AwsConfigEventBridgeClient.d.ts.map +1 -0
  222. package/dist/esm/awsConfigClients/clients/AwsConfigEventBridgeClient.js +103 -0
  223. package/dist/esm/awsConfigClients/clients/AwsConfigEventBridgeClient.js.map +1 -0
  224. package/dist/esm/awsConfigClients/clients/AwsConfigGlueClient.d.ts +21 -0
  225. package/dist/esm/awsConfigClients/clients/AwsConfigGlueClient.d.ts.map +1 -0
  226. package/dist/esm/awsConfigClients/clients/AwsConfigGlueClient.js +40 -0
  227. package/dist/esm/awsConfigClients/clients/AwsConfigGlueClient.js.map +1 -0
  228. package/dist/esm/awsConfigClients/clients/AwsConfigIamClient.d.ts +18 -0
  229. package/dist/esm/awsConfigClients/clients/AwsConfigIamClient.d.ts.map +1 -0
  230. package/dist/esm/awsConfigClients/clients/AwsConfigIamClient.js +435 -0
  231. package/dist/esm/awsConfigClients/clients/AwsConfigIamClient.js.map +1 -0
  232. package/dist/esm/awsConfigClients/clients/AwsConfigKafkaClient.d.ts +18 -0
  233. package/dist/esm/awsConfigClients/clients/AwsConfigKafkaClient.d.ts.map +1 -0
  234. package/dist/esm/awsConfigClients/clients/AwsConfigKafkaClient.js +141 -0
  235. package/dist/esm/awsConfigClients/clients/AwsConfigKafkaClient.js.map +1 -0
  236. package/dist/esm/awsConfigClients/clients/AwsConfigKinesisClient.d.ts +22 -0
  237. package/dist/esm/awsConfigClients/clients/AwsConfigKinesisClient.d.ts.map +1 -0
  238. package/dist/esm/awsConfigClients/clients/AwsConfigKinesisClient.js +83 -0
  239. package/dist/esm/awsConfigClients/clients/AwsConfigKinesisClient.js.map +1 -0
  240. package/dist/esm/awsConfigClients/clients/AwsConfigKmsClient.d.ts +18 -0
  241. package/dist/esm/awsConfigClients/clients/AwsConfigKmsClient.d.ts.map +1 -0
  242. package/dist/esm/awsConfigClients/clients/AwsConfigKmsClient.js +101 -0
  243. package/dist/esm/awsConfigClients/clients/AwsConfigKmsClient.js.map +1 -0
  244. package/dist/esm/awsConfigClients/clients/AwsConfigLambdaClient.d.ts +22 -0
  245. package/dist/esm/awsConfigClients/clients/AwsConfigLambdaClient.d.ts.map +1 -0
  246. package/dist/esm/awsConfigClients/clients/AwsConfigLambdaClient.js +154 -0
  247. package/dist/esm/awsConfigClients/clients/AwsConfigLambdaClient.js.map +1 -0
  248. package/dist/esm/awsConfigClients/clients/AwsConfigOpenSearchClient.d.ts +18 -0
  249. package/dist/esm/awsConfigClients/clients/AwsConfigOpenSearchClient.d.ts.map +1 -0
  250. package/dist/esm/awsConfigClients/clients/AwsConfigOpenSearchClient.js +121 -0
  251. package/dist/esm/awsConfigClients/clients/AwsConfigOpenSearchClient.js.map +1 -0
  252. package/dist/esm/awsConfigClients/clients/AwsConfigOrganizationsClient.d.ts +22 -0
  253. package/dist/esm/awsConfigClients/clients/AwsConfigOrganizationsClient.d.ts.map +1 -0
  254. package/dist/esm/awsConfigClients/clients/AwsConfigOrganizationsClient.js +170 -0
  255. package/dist/esm/awsConfigClients/clients/AwsConfigOrganizationsClient.js.map +1 -0
  256. package/dist/esm/awsConfigClients/clients/AwsConfigS3Client.d.ts +15 -0
  257. package/dist/esm/awsConfigClients/clients/AwsConfigS3Client.d.ts.map +1 -0
  258. package/dist/esm/awsConfigClients/clients/AwsConfigS3Client.js +235 -0
  259. package/dist/esm/awsConfigClients/clients/AwsConfigS3Client.js.map +1 -0
  260. package/dist/esm/awsConfigClients/clients/AwsConfigS3ControlClient.d.ts +25 -0
  261. package/dist/esm/awsConfigClients/clients/AwsConfigS3ControlClient.d.ts.map +1 -0
  262. package/dist/esm/awsConfigClients/clients/AwsConfigS3ControlClient.js +289 -0
  263. package/dist/esm/awsConfigClients/clients/AwsConfigS3ControlClient.js.map +1 -0
  264. package/dist/esm/awsConfigClients/clients/AwsConfigSNSClient.d.ts +18 -0
  265. package/dist/esm/awsConfigClients/clients/AwsConfigSNSClient.d.ts.map +1 -0
  266. package/dist/esm/awsConfigClients/clients/AwsConfigSNSClient.js +110 -0
  267. package/dist/esm/awsConfigClients/clients/AwsConfigSNSClient.js.map +1 -0
  268. package/dist/esm/awsConfigClients/clients/AwsConfigSQSClient.d.ts +18 -0
  269. package/dist/esm/awsConfigClients/clients/AwsConfigSQSClient.d.ts.map +1 -0
  270. package/dist/esm/awsConfigClients/clients/AwsConfigSQSClient.js +101 -0
  271. package/dist/esm/awsConfigClients/clients/AwsConfigSQSClient.js.map +1 -0
  272. package/dist/esm/awsConfigClients/clients/AwsConfigSecretsManagerClient.d.ts +21 -0
  273. package/dist/esm/awsConfigClients/clients/AwsConfigSecretsManagerClient.d.ts.map +1 -0
  274. package/dist/esm/awsConfigClients/clients/AwsConfigSecretsManagerClient.js +46 -0
  275. package/dist/esm/awsConfigClients/clients/AwsConfigSecretsManagerClient.js.map +1 -0
  276. package/dist/esm/config/config.d.ts +18 -0
  277. package/dist/esm/config/config.d.ts.map +1 -1
  278. package/dist/esm/config/config.js +15 -0
  279. package/dist/esm/config/config.js.map +1 -1
  280. package/dist/esm/config/dataSource.d.ts +11 -0
  281. package/dist/esm/config/dataSource.d.ts.map +1 -0
  282. package/dist/esm/config/dataSource.js +24 -0
  283. package/dist/esm/config/dataSource.js.map +1 -0
  284. package/dist/esm/customClients/AbstractClient.d.ts +45 -0
  285. package/dist/esm/customClients/AbstractClient.d.ts.map +1 -0
  286. package/dist/esm/customClients/AbstractClient.js +68 -0
  287. package/dist/esm/customClients/AbstractClient.js.map +1 -0
  288. package/dist/esm/customClients/AbstractClientPool.d.ts +53 -0
  289. package/dist/esm/customClients/AbstractClientPool.d.ts.map +1 -0
  290. package/dist/esm/customClients/AbstractClientPool.js +62 -0
  291. package/dist/esm/customClients/AbstractClientPool.js.map +1 -0
  292. package/dist/esm/customClients/AbstractCommand.d.ts +56 -0
  293. package/dist/esm/customClients/AbstractCommand.d.ts.map +1 -0
  294. package/dist/esm/customClients/AbstractCommand.js +16 -0
  295. package/dist/esm/customClients/AbstractCommand.js.map +1 -0
  296. package/dist/esm/customClients/ResourceNotFoundException.d.ts +23 -0
  297. package/dist/esm/customClients/ResourceNotFoundException.d.ts.map +1 -0
  298. package/dist/esm/customClients/ResourceNotFoundException.js +32 -0
  299. package/dist/esm/customClients/ResourceNotFoundException.js.map +1 -0
  300. package/dist/esm/download/download.d.ts.map +1 -1
  301. package/dist/esm/download/download.js +66 -29
  302. package/dist/esm/download/download.js.map +1 -1
  303. package/dist/esm/regions.d.ts +2 -1
  304. package/dist/esm/regions.d.ts.map +1 -1
  305. package/dist/esm/regions.js +2 -2
  306. package/dist/esm/regions.js.map +1 -1
  307. package/dist/esm/syncs/dynamodb/dynamoDbStreams.d.ts.map +1 -1
  308. package/dist/esm/syncs/dynamodb/dynamoDbStreams.js +2 -3
  309. package/dist/esm/syncs/dynamodb/dynamoDbStreams.js.map +1 -1
  310. package/dist/esm/syncs/ecr/ecrSyncs.d.ts.map +1 -1
  311. package/dist/esm/syncs/ecr/ecrSyncs.js +1 -2
  312. package/dist/esm/syncs/ecr/ecrSyncs.js.map +1 -1
  313. package/dist/esm/syncs/glue/catalogs.d.ts.map +1 -1
  314. package/dist/esm/syncs/glue/catalogs.js +1 -2
  315. package/dist/esm/syncs/glue/catalogs.js.map +1 -1
  316. package/dist/esm/syncs/iam/authorizationDetails.d.ts.map +1 -1
  317. package/dist/esm/syncs/iam/authorizationDetails.js +1 -2
  318. package/dist/esm/syncs/iam/authorizationDetails.js.map +1 -1
  319. package/dist/esm/syncs/lambda/lambda.d.ts.map +1 -1
  320. package/dist/esm/syncs/lambda/lambda.js +1 -2
  321. package/dist/esm/syncs/lambda/lambda.js.map +1 -1
  322. package/dist/esm/syncs/organizations/organizations.d.ts.map +1 -1
  323. package/dist/esm/syncs/organizations/organizations.js +1 -2
  324. package/dist/esm/syncs/organizations/organizations.js.map +1 -1
  325. package/dist/esm/syncs/ram/ramShares.d.ts.map +1 -1
  326. package/dist/esm/syncs/ram/ramShares.js +1 -2
  327. package/dist/esm/syncs/ram/ramShares.js.map +1 -1
  328. package/dist/esm/syncs/s3/accountBpa.d.ts.map +1 -1
  329. package/dist/esm/syncs/s3/accountBpa.js +2 -3
  330. package/dist/esm/syncs/s3/accountBpa.js.map +1 -1
  331. package/dist/esm/syncs/s3/buckets.js +3 -6
  332. package/dist/esm/syncs/s3/buckets.js.map +1 -1
  333. package/dist/esm/syncs/s3outposts/s3OutpostsSyncs.d.ts.map +1 -1
  334. package/dist/esm/syncs/s3outposts/s3OutpostsSyncs.js +2 -3
  335. package/dist/esm/syncs/s3outposts/s3OutpostsSyncs.js.map +1 -1
  336. package/dist/esm/syncs/sso/ssoInstances.d.ts.map +1 -1
  337. package/dist/esm/syncs/sso/ssoInstances.js +1 -2
  338. package/dist/esm/syncs/sso/ssoInstances.js.map +1 -1
  339. package/dist/esm/syncs/sync.d.ts +2 -0
  340. package/dist/esm/syncs/sync.d.ts.map +1 -1
  341. package/dist/esm/syncs/sync.js.map +1 -1
  342. package/dist/esm/syncs/typedSync.d.ts +3 -2
  343. package/dist/esm/syncs/typedSync.d.ts.map +1 -1
  344. package/dist/esm/syncs/typedSync.js +4 -4
  345. package/dist/esm/syncs/typedSync.js.map +1 -1
  346. package/dist/esm/utils/json.d.ts +7 -0
  347. package/dist/esm/utils/json.d.ts.map +1 -1
  348. package/dist/esm/utils/json.js +16 -1
  349. package/dist/esm/utils/json.js.map +1 -1
  350. package/package.json +2 -1
@@ -0,0 +1,435 @@
1
+ import { GetAccountAuthorizationDetailsCommand, GetOpenIDConnectProviderCommand, GetPolicyCommand, GetPolicyVersionCommand, GetSAMLProviderCommand, IAMClient, ListInstanceProfilesCommand, ListOpenIDConnectProvidersCommand, ListPolicyTagsCommand, ListSAMLProvidersCommand } from '@aws-sdk/client-iam';
2
+ import { splitArnParts } from '@cloud-copilot/iam-utils';
3
+ import { AwsClientPool } from '../../aws/ClientPool.js';
4
+ import { AbstractClient } from '../../customClients/AbstractClient.js';
5
+ import { awsConfigCommand } from '../AwsConfigClientContext.js';
6
+ import { executeConfigQuery, parseConfigItem, resourceStatusWhereClause } from '../awsConfigUtils.js';
7
+ /**
8
+ * AWS Config-based IAM client implementation
9
+ */
10
+ export class AwsConfigIamClient extends AbstractClient {
11
+ constructor(options, customContext) {
12
+ super(options, customContext);
13
+ }
14
+ /**
15
+ * Register all IAM command implementations
16
+ */
17
+ registerCommands() {
18
+ this.registerCommand(AwsConfigGetAccountAuthorizationDetailsCommand);
19
+ this.registerCommand(AwsConfigGetOpenIDConnectProviderCommand);
20
+ this.registerCommand(AwsConfigGetSAMLProviderCommand);
21
+ this.registerCommand(AwsConfigListInstanceProfilesCommand);
22
+ this.registerCommand(AwsConfigListOpenIDConnectProvidersCommand);
23
+ this.registerCommand(AwsConfigListSAMLProvidersCommand);
24
+ this.registerCommand(AwsConfigListPolicyTagsCommand);
25
+ }
26
+ }
27
+ AwsConfigIamClient.clientName = IAMClient.name;
28
+ /**
29
+ * Config-based implementation of IAM GetAccountAuthorizationDetailsCommand
30
+ *
31
+ * Aggregates IAM data from multiple Config resource types:
32
+ * - AWS::IAM::Role for roles
33
+ * - AWS::IAM::User for users
34
+ * - AWS::IAM::Group for groups
35
+ * - AWS::IAM::Policy for managed policies
36
+ */
37
+ const AwsConfigGetAccountAuthorizationDetailsCommand = awsConfigCommand({
38
+ command: GetAccountAuthorizationDetailsCommand,
39
+ execute: async (input, context) => {
40
+ const nativeIamClient = AwsClientPool.defaultInstance.client(IAMClient, context.configCredentials, context.region, undefined);
41
+ const awsManagedPoliciesToFetch = new Set();
42
+ // Query roles from Config
43
+ const rolesQuery = `
44
+ SELECT
45
+ configuration.arn,
46
+ configuration.roleName,
47
+ configuration.path,
48
+ configuration.roleId,
49
+ configuration.createDate,
50
+ configuration.assumeRolePolicyDocument,
51
+ configuration.attachedManagedPolicies,
52
+ configuration.instanceProfileList,
53
+ configuration.rolePolicyList,
54
+ configuration.permissionsBoundary,
55
+ configuration.roleLastUsed,
56
+ tags
57
+ WHERE
58
+ resourceType = 'AWS::IAM::Role'
59
+ AND accountId = '${context.accountId}'
60
+ AND ${resourceStatusWhereClause}
61
+ `;
62
+ // Query users from Config
63
+ const usersQuery = `
64
+ SELECT
65
+ configuration.arn,
66
+ configuration.userName,
67
+ configuration.path,
68
+ configuration.userId,
69
+ configuration.createDate,
70
+ configuration.attachedManagedPolicies,
71
+ configuration.groupList,
72
+ configuration.userPolicyList,
73
+ configuration.permissionsBoundary,
74
+ tags
75
+ WHERE
76
+ resourceType = 'AWS::IAM::User'
77
+ AND accountId = '${context.accountId}'
78
+ AND ${resourceStatusWhereClause}
79
+ `;
80
+ // Query groups from Config
81
+ const groupsQuery = `
82
+ SELECT
83
+ configuration.arn,
84
+ configuration.groupName,
85
+ configuration.path,
86
+ configuration.groupId,
87
+ configuration.createDate,
88
+ configuration.attachedManagedPolicies,
89
+ configuration.groupPolicyList,
90
+ tags
91
+ WHERE
92
+ resourceType = 'AWS::IAM::Group'
93
+ AND accountId = '${context.accountId}'
94
+ AND ${resourceStatusWhereClause}
95
+ `;
96
+ // Query policies from Config
97
+ const policiesQuery = `
98
+ SELECT
99
+ configuration.policyName,
100
+ configuration.policyId,
101
+ configuration.arn,
102
+ configuration.path,
103
+ configuration.createDate,
104
+ configuration.updateDate,
105
+ configuration.policyVersionList,
106
+ configuration.attachmentCount,
107
+ configuration.permissionsBoundaryUsageCount,
108
+ configuration.isAttachable,
109
+ configuration.description,
110
+ tags
111
+ WHERE
112
+ resourceType = 'AWS::IAM::Policy'
113
+ AND accountId = '${context.accountId}'
114
+ AND ${resourceStatusWhereClause}
115
+ `;
116
+ // Execute all queries
117
+ const [rolesResults, usersResults, groupsResults, policiesResults] = await Promise.all([
118
+ executeConfigQuery(rolesQuery, context),
119
+ executeConfigQuery(usersQuery, context),
120
+ executeConfigQuery(groupsQuery, context),
121
+ executeConfigQuery(policiesQuery, context)
122
+ ]);
123
+ // Transform Config data to IAM format and collect AWS managed policies
124
+ const roles = rolesResults.map((resultString) => {
125
+ const { configuration, tags } = parseConfigItem(resultString);
126
+ // Collect AWS managed policies from this role
127
+ const attachedPolicies = configuration.attachedManagedPolicies || [];
128
+ attachedPolicies.forEach((policy) => {
129
+ if (policy.policyArn && isAwsManagedPolicy(policy.policyArn)) {
130
+ awsManagedPoliciesToFetch.add(policy.policyArn);
131
+ }
132
+ });
133
+ return {
134
+ Arn: configuration.arn,
135
+ RoleName: configuration.roleName,
136
+ Path: configuration.path,
137
+ RoleId: configuration.roleId,
138
+ CreateDate: configuration.createDate ? new Date(configuration.createDate) : undefined,
139
+ AssumeRolePolicyDocument: configuration.assumeRolePolicyDocument,
140
+ AttachedManagedPolicies: configuration.attachedManagedPolicies?.map((ap) => ({
141
+ PolicyName: ap.policyName,
142
+ PolicyArn: ap.policyArn
143
+ })),
144
+ InstanceProfileList: configuration.instanceProfileList,
145
+ RolePolicyList: configuration.rolePolicyList.map((rp) => ({
146
+ PolicyName: rp.policyName,
147
+ PolicyDocument: rp.policyDocument
148
+ })),
149
+ Tags: tags,
150
+ PermissionsBoundary: configuration.permissionsBoundary,
151
+ RoleLastUsed: configuration.roleLastUsed
152
+ };
153
+ });
154
+ const users = usersResults.map((resultString) => {
155
+ const { configuration, tags } = parseConfigItem(resultString);
156
+ // Collect AWS managed policies from this user
157
+ const attachedPolicies = configuration.attachedManagedPolicies || [];
158
+ attachedPolicies.forEach((policy) => {
159
+ if (policy.policyArn && isAwsManagedPolicy(policy.policyArn)) {
160
+ awsManagedPoliciesToFetch.add(policy.policyArn);
161
+ }
162
+ });
163
+ return {
164
+ Arn: configuration.arn,
165
+ UserName: configuration.userName,
166
+ Path: configuration.path,
167
+ UserId: configuration.userId,
168
+ CreateDate: configuration.createDate ? new Date(configuration.createDate) : undefined,
169
+ AttachedManagedPolicies: configuration.attachedManagedPolicies.map((ap) => ({
170
+ PolicyName: ap.policyName,
171
+ PolicyArn: ap.policyArn
172
+ })),
173
+ GroupList: configuration.groupList,
174
+ UserPolicyList: configuration.userPolicyList.map((up) => ({
175
+ PolicyName: up.policyName,
176
+ PolicyDocument: up.policyDocument
177
+ })),
178
+ Tags: tags,
179
+ PermissionsBoundary: configuration.permissionsBoundary
180
+ };
181
+ });
182
+ const groups = groupsResults.map((resultString) => {
183
+ const { configuration, tags } = parseConfigItem(resultString);
184
+ // Collect AWS managed policies from this group
185
+ const attachedPolicies = configuration.attachedManagedPolicies || [];
186
+ attachedPolicies.forEach((policy) => {
187
+ if (policy.policyArn && isAwsManagedPolicy(policy.policyArn)) {
188
+ awsManagedPoliciesToFetch.add(policy.policyArn);
189
+ }
190
+ });
191
+ return {
192
+ Arn: configuration.arn,
193
+ GroupName: configuration.groupName,
194
+ Path: configuration.path,
195
+ GroupId: configuration.groupId,
196
+ CreateDate: configuration.createDate ? new Date(configuration.createDate) : undefined,
197
+ AttachedManagedPolicies: putInArray(configuration.attachedManagedPolicies).map((ap) => ({
198
+ PolicyName: ap.policyName,
199
+ PolicyArn: ap.policyArn
200
+ })),
201
+ Tags: tags ? Object.entries(tags).map(([key, value]) => ({ Key: key, Value: value })) : [],
202
+ GroupPolicyList: putInArray(configuration.groupPolicyList).map((gp) => ({
203
+ PolicyName: gp.policyName,
204
+ PolicyDocument: gp.policyDocument
205
+ }))
206
+ };
207
+ });
208
+ const policies = policiesResults.map((resultString) => {
209
+ const { configuration, tags } = parseConfigItem(resultString);
210
+ return {
211
+ PolicyName: configuration.policyName,
212
+ PolicyId: configuration.policyId,
213
+ Arn: configuration.arn,
214
+ Path: configuration.path,
215
+ CreateDate: configuration.createDate ? new Date(configuration.createDate) : undefined,
216
+ UpdateDate: configuration.updateDate ? new Date(configuration.updateDate) : undefined,
217
+ PolicyVersionList: putInArray(configuration.policyVersionList).map((pv) => ({
218
+ Document: pv.document,
219
+ VersionId: pv.versionId,
220
+ IsDefaultVersion: pv.isDefaultVersion
221
+ })),
222
+ AttachmentCount: configuration.attachmentCount,
223
+ PermissionsBoundaryUsageCount: configuration.permissionsBoundaryUsageCount,
224
+ IsAttachable: configuration.isAttachable,
225
+ Description: configuration.description,
226
+ Tags: tags
227
+ };
228
+ });
229
+ // Fetch AWS managed policy details using native IAM client
230
+ const awsManagedPolicies = [];
231
+ for (const policyArn of awsManagedPoliciesToFetch) {
232
+ const policyDetails = await nativeIamClient.send(new GetPolicyCommand({ PolicyArn: policyArn }));
233
+ const policyDocument = await nativeIamClient.send(new GetPolicyVersionCommand({
234
+ PolicyArn: policyArn,
235
+ VersionId: policyDetails.Policy?.DefaultVersionId
236
+ }));
237
+ if (policyDocument.PolicyVersion) {
238
+ awsManagedPolicies.push({
239
+ ...policyDetails.Policy,
240
+ PolicyVersionList: [
241
+ {
242
+ Document: policyDocument.PolicyVersion.Document,
243
+ VersionId: policyDocument.PolicyVersion.VersionId,
244
+ IsDefaultVersion: policyDocument.PolicyVersion.IsDefaultVersion
245
+ }
246
+ ]
247
+ });
248
+ }
249
+ }
250
+ // Combine customer-managed policies from Config with AWS managed policies from native IAM
251
+ const allPolicies = [...policies, ...awsManagedPolicies];
252
+ return {
253
+ UserDetailList: users,
254
+ GroupDetailList: groups,
255
+ RoleDetailList: roles,
256
+ Policies: allPolicies,
257
+ IsTruncated: false
258
+ };
259
+ }
260
+ });
261
+ /**
262
+ * Config-based implementation of IAM ListInstanceProfilesCommand
263
+ *
264
+ * Note: AWS Config doesn't track InstanceProfile as a separate resource type.
265
+ * Instance profiles are extracted from Role configuration data.
266
+ */
267
+ const AwsConfigListInstanceProfilesCommand = awsConfigCommand({
268
+ command: ListInstanceProfilesCommand,
269
+ execute: async (input, context) => {
270
+ // Get roles from Config and extract instance profiles
271
+ const query = `
272
+ SELECT
273
+ configuration.instanceProfileList
274
+ WHERE
275
+ resourceType = 'AWS::IAM::Role'
276
+ AND accountId = '${context.accountId}'
277
+ AND ${resourceStatusWhereClause}
278
+ `;
279
+ const results = await executeConfigQuery(query, context);
280
+ // Extract unique instance profiles from all roles
281
+ const instanceProfilesMap = new Map();
282
+ results.forEach((resultString) => {
283
+ const { configuration } = parseConfigItem(resultString);
284
+ const instanceProfiles = configuration.instanceProfileList || [];
285
+ instanceProfiles.forEach((profile) => {
286
+ if (profile.arn && !instanceProfilesMap.has(profile.arn)) {
287
+ instanceProfilesMap.set(profile.arn, {
288
+ Path: profile.path,
289
+ InstanceProfileName: profile.instanceProfileName,
290
+ InstanceProfileId: profile.instanceProfileId,
291
+ Arn: profile.arn,
292
+ CreateDate: profile.createDate ? new Date(profile.createDate) : undefined,
293
+ Roles: profile.roles?.map((r) => ({ Arn: r.arn })) || [],
294
+ Tags: [] // Tags not available in role's instance profile data
295
+ });
296
+ }
297
+ });
298
+ });
299
+ return {
300
+ InstanceProfiles: Array.from(instanceProfilesMap.values()),
301
+ IsTruncated: false // TODO: Handle pagination properly
302
+ };
303
+ }
304
+ });
305
+ /**
306
+ * Config-based implementation of IAM ListOpenIDConnectProvidersCommand
307
+ */
308
+ const AwsConfigListOpenIDConnectProvidersCommand = awsConfigCommand({
309
+ command: ListOpenIDConnectProvidersCommand,
310
+ execute: async (input, context) => {
311
+ const query = `
312
+ SELECT
313
+ configuration.Arn,
314
+ configuration.Url,
315
+ configuration.ClientIdList,
316
+ configuration.ThumbprintList,
317
+ tags
318
+ WHERE
319
+ resourceType = 'AWS::IAM::OIDCProvider'
320
+ AND accountId = '${context.accountId}'
321
+ AND ${resourceStatusWhereClause}
322
+ `;
323
+ const results = await executeConfigQuery(query, context);
324
+ const providers = results.map((resultString) => {
325
+ const { configuration, tags } = parseConfigItem(resultString);
326
+ context.putCache(configuration.Arn, 'configuration', { configuration, tags });
327
+ return {
328
+ Arn: configuration.Arn
329
+ };
330
+ });
331
+ return {
332
+ OpenIDConnectProviderList: providers
333
+ };
334
+ }
335
+ });
336
+ /**
337
+ * Config-based implementation of IAM GetOpenIDConnectProviderCommand
338
+ */
339
+ const AwsConfigGetOpenIDConnectProviderCommand = awsConfigCommand({
340
+ command: GetOpenIDConnectProviderCommand,
341
+ execute: async (input, context) => {
342
+ const { configuration, tags } = context.getCache(input.OpenIDConnectProviderArn, 'configuration');
343
+ return {
344
+ Url: configuration.Url,
345
+ ClientIDList: configuration.ClientIdList,
346
+ ThumbprintList: configuration.ThumbprintList,
347
+ Tags: tags
348
+ };
349
+ }
350
+ });
351
+ /**
352
+ * Config-based implementation of IAM ListSAMLProvidersCommand
353
+ */
354
+ const AwsConfigListSAMLProvidersCommand = awsConfigCommand({
355
+ command: ListSAMLProvidersCommand,
356
+ execute: async (input, context) => {
357
+ const query = `
358
+ SELECT
359
+ arn,
360
+ configuration.SamlMetadataDocument,
361
+ tags
362
+ WHERE
363
+ resourceType = 'AWS::IAM::SAMLProvider'
364
+ AND accountId = '${context.accountId}'
365
+ AND ${resourceStatusWhereClause}
366
+ `;
367
+ const results = await executeConfigQuery(query, context);
368
+ const providers = results.map((resultString) => {
369
+ const { configItem, configuration, tags } = parseConfigItem(resultString);
370
+ context.putCache(configItem.arn, 'configuration', { configuration, tags });
371
+ return {
372
+ Arn: configItem.arn
373
+ };
374
+ });
375
+ return {
376
+ SAMLProviderList: providers
377
+ };
378
+ }
379
+ });
380
+ /**
381
+ * Config-based implementation of IAM GetSAMLProviderCommand
382
+ */
383
+ const AwsConfigGetSAMLProviderCommand = awsConfigCommand({
384
+ command: GetSAMLProviderCommand,
385
+ execute: async (input, context) => {
386
+ const { configuration, tags } = context.getCache(input.SAMLProviderArn, 'configuration');
387
+ return {
388
+ SAMLMetadataDocument: configuration.SamlMetadataDocument,
389
+ Tags: tags
390
+ };
391
+ }
392
+ });
393
+ /**
394
+ * Config-based implementation of IAM ListPolicyTagsCommand
395
+ */
396
+ const AwsConfigListPolicyTagsCommand = awsConfigCommand({
397
+ command: ListPolicyTagsCommand,
398
+ execute: async (input, context) => {
399
+ const policyName = input.PolicyArn.split('/').pop();
400
+ const query = `
401
+ SELECT
402
+ tags
403
+ WHERE
404
+ resourceType = 'AWS::IAM::Policy'
405
+ AND accountId = '${context.accountId}'
406
+ AND resourceName = '${policyName}'
407
+ AND ${resourceStatusWhereClause}
408
+ `;
409
+ const results = await executeConfigQuery(query, context);
410
+ if (results.length === 0) {
411
+ throw new Error('Policy not found');
412
+ }
413
+ const { tags } = parseConfigItem(results[0]);
414
+ return {
415
+ Tags: tags,
416
+ IsTruncated: false
417
+ };
418
+ }
419
+ });
420
+ /**
421
+ * Given an AWS IAM policy ARN, determine if it is an AWS-managed policy
422
+ *
423
+ * @param policyArn the ARN of the IAM policy
424
+ * @returns true if the policy is AWS-managed, false otherwise
425
+ */
426
+ function isAwsManagedPolicy(policyArn) {
427
+ return splitArnParts(policyArn).accountId === 'aws';
428
+ }
429
+ function putInArray(item) {
430
+ if (item === undefined || item === null) {
431
+ return [];
432
+ }
433
+ return Array.isArray(item) ? item : [item];
434
+ }
435
+ //# sourceMappingURL=AwsConfigIamClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AwsConfigIamClient.js","sourceRoot":"","sources":["../../../../src/awsConfigClients/clients/AwsConfigIamClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { AwsCredentialIdentityWithMetaData } from '../../aws/coreAuth.js';
2
+ import { AbstractClient } from '../../customClients/AbstractClient.js';
3
+ import { AwsConfigClientContext } from '../AwsConfigClientContext.js';
4
+ /**
5
+ * AWS Config-based Kafka client implementation
6
+ */
7
+ export declare class AwsConfigKafkaClient extends AbstractClient<AwsConfigClientContext> {
8
+ static readonly clientName: string;
9
+ constructor(options: {
10
+ credentials: AwsCredentialIdentityWithMetaData;
11
+ region: string | undefined;
12
+ }, customContext: AwsConfigClientContext);
13
+ /**
14
+ * Register all Kafka command implementations
15
+ */
16
+ protected registerCommands(): void;
17
+ }
18
+ //# sourceMappingURL=AwsConfigKafkaClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AwsConfigKafkaClient.d.ts","sourceRoot":"","sources":["../../../../src/awsConfigClients/clients/AwsConfigKafkaClient.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,iCAAiC,EAAE,MAAM,uBAAuB,CAAA;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAA;AAGtE,OAAO,EAAE,sBAAsB,EAAoB,MAAM,8BAA8B,CAAA;AAOvF;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,cAAc,CAAC,sBAAsB,CAAC;IAC9E,MAAM,CAAC,QAAQ,CAAC,UAAU,SAAmB;gBAG3C,OAAO,EAAE;QACP,WAAW,EAAE,iCAAiC,CAAA;QAC9C,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;KAC3B,EACD,aAAa,EAAE,sBAAsB;IAKvC;;OAEG;IACH,SAAS,CAAC,gBAAgB,IAAI,IAAI;CAMnC"}
@@ -0,0 +1,141 @@
1
+ import { DescribeClusterCommand, GetClusterPolicyCommand, KafkaClient, ListClustersV2Command, ListTagsForResourceCommand } from '@aws-sdk/client-kafka';
2
+ import { AbstractClient } from '../../customClients/AbstractClient.js';
3
+ import { ResourceNotFoundException } from '../../customClients/ResourceNotFoundException.js';
4
+ import { stringifyIfPresent } from '../../utils/json.js';
5
+ import { awsConfigCommand } from '../AwsConfigClientContext.js';
6
+ import { executeConfigQuery, parseConfigItem, resourceStatusWhereClause } from '../awsConfigUtils.js';
7
+ /**
8
+ * AWS Config-based Kafka client implementation
9
+ */
10
+ export class AwsConfigKafkaClient extends AbstractClient {
11
+ constructor(options, customContext) {
12
+ super(options, customContext);
13
+ }
14
+ /**
15
+ * Register all Kafka command implementations
16
+ */
17
+ registerCommands() {
18
+ this.registerCommand(AwsConfigListClustersV2Command);
19
+ this.registerCommand(AwsConfigDescribeClusterCommand);
20
+ this.registerCommand(AwsConfigGetClusterPolicyCommand);
21
+ this.registerCommand(AwsConfigListTagsForResourceCommand);
22
+ }
23
+ }
24
+ AwsConfigKafkaClient.clientName = KafkaClient.name;
25
+ /**
26
+ * Config-based implementation of Kafka ListClustersV2Command
27
+ */
28
+ const AwsConfigListClustersV2Command = awsConfigCommand({
29
+ command: ListClustersV2Command,
30
+ execute: async (input, context) => {
31
+ const { NextToken, MaxResults } = input;
32
+ // Query AWS Config for all MSK clusters with only needed configuration fields
33
+ const query = `
34
+ SELECT
35
+ resourceId,
36
+ resourceName,
37
+ awsRegion,
38
+ configuration.EncryptionInfo,
39
+ configuration.Policy,
40
+ tags
41
+ WHERE
42
+ resourceType = 'AWS::MSK::Cluster'
43
+ AND accountId = '${context.accountId}'
44
+ AND awsRegion = '${context.region}'
45
+ AND ${resourceStatusWhereClause}
46
+ `;
47
+ const items = await executeConfigQuery(query, context);
48
+ // Transform Config data to ListClustersV2Response format
49
+ const clusterInfoList = items.map((item) => {
50
+ const { configItem, configuration, tags } = parseConfigItem(item);
51
+ // Cache data that will be needed by other commands
52
+ const clusterArn = configItem.resourceId;
53
+ context.putCache(clusterArn, 'configuration', configuration);
54
+ context.putCache(clusterArn, 'resourceName', configItem.resourceName);
55
+ context.putCache(clusterArn, 'tags', tags);
56
+ return {
57
+ ClusterArn: clusterArn,
58
+ ClusterName: configItem.resourceName,
59
+ Tags: tags || {}
60
+ };
61
+ });
62
+ return {
63
+ ClusterInfoList: clusterInfoList
64
+ };
65
+ }
66
+ });
67
+ /**
68
+ * Config-based implementation of Kafka DescribeClusterCommand
69
+ */
70
+ const AwsConfigDescribeClusterCommand = awsConfigCommand({
71
+ command: DescribeClusterCommand,
72
+ execute: async (input, context) => {
73
+ const { ClusterArn } = input;
74
+ if (!ClusterArn) {
75
+ throw new Error('ClusterArn is required for DescribeClusterCommand');
76
+ }
77
+ const configuration = context.getCache(ClusterArn, 'configuration');
78
+ const resourceName = context.getCache(ClusterArn, 'resourceName');
79
+ // Transform Config data to DescribeClusterResponse format
80
+ return {
81
+ ClusterInfo: {
82
+ ClusterArn: ClusterArn,
83
+ ClusterName: configuration?.clusterName || resourceName,
84
+ EncryptionInfo: configuration?.encryptionInfo
85
+ }
86
+ };
87
+ }
88
+ });
89
+ /**
90
+ * Config-based implementation of Kafka GetClusterPolicyCommand
91
+ */
92
+ const AwsConfigGetClusterPolicyCommand = awsConfigCommand({
93
+ command: GetClusterPolicyCommand,
94
+ execute: async (input, context) => {
95
+ const { ClusterArn } = input;
96
+ if (!ClusterArn) {
97
+ throw new Error('ClusterArn is required for GetClusterPolicyCommand');
98
+ }
99
+ // Query AWS Config for MSK cluster policy
100
+ const query = `
101
+ SELECT
102
+ resourceId,
103
+ configuration.clusterArn,
104
+ configuration.Policy
105
+ WHERE
106
+ resourceType = 'AWS::MSK::ClusterPolicy'
107
+ AND resourceId = '${ClusterArn}'
108
+ AND awsRegion = '${context.region}'
109
+ AND accountId = '${context.accountId}'
110
+ AND ${resourceStatusWhereClause}
111
+ `;
112
+ const items = await executeConfigQuery(query, context);
113
+ if (items.length === 0) {
114
+ throw new ResourceNotFoundException(`Cluster policy not found for cluster: ${ClusterArn}`);
115
+ }
116
+ const { configuration } = parseConfigItem(items[0]);
117
+ // Transform Config data to GetClusterPolicyResponse format
118
+ return {
119
+ CurrentVersion: '1', // Config doesn't track policy version, use default
120
+ Policy: stringifyIfPresent(configuration.Policy)
121
+ };
122
+ }
123
+ });
124
+ /**
125
+ * Config-based implementation of Kafka ListTagsForResourceCommand
126
+ */
127
+ const AwsConfigListTagsForResourceCommand = awsConfigCommand({
128
+ command: ListTagsForResourceCommand,
129
+ execute: async (input, context) => {
130
+ const { ResourceArn } = input;
131
+ if (!ResourceArn) {
132
+ throw new Error('ResourceArn is required for ListTagsForResourceCommand');
133
+ }
134
+ const tags = context.getCache(ResourceArn, 'tags');
135
+ // Transform Config data to ListTagsForResourceResponse format
136
+ return {
137
+ Tags: tags
138
+ };
139
+ }
140
+ });
141
+ //# sourceMappingURL=AwsConfigKafkaClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AwsConfigKafkaClient.js","sourceRoot":"","sources":["../../../../src/awsConfigClients/clients/AwsConfigKafkaClient.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,WAAW,EACX,qBAAqB,EACrB,0BAA0B,EAC3B,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAA;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,kDAAkD,CAAA;AAC5F,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAA0B,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AACvF,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,yBAAyB,EAC1B,MAAM,sBAAsB,CAAA;AAE7B;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,cAAsC;IAG9E,YACE,OAGC,EACD,aAAqC;QAErC,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;IAC/B,CAAC;IAED;;OAEG;IACO,gBAAgB;QACxB,IAAI,CAAC,eAAe,CAAC,8BAA8B,CAAC,CAAA;QACpD,IAAI,CAAC,eAAe,CAAC,+BAA+B,CAAC,CAAA;QACrD,IAAI,CAAC,eAAe,CAAC,gCAAgC,CAAC,CAAA;QACtD,IAAI,CAAC,eAAe,CAAC,mCAAmC,CAAC,CAAA;IAC3D,CAAC;;AApBe,+BAAU,GAAG,WAAW,CAAC,IAAI,CAAA;AAuB/C;;GAEG;AACH,MAAM,8BAA8B,GAAG,gBAAgB,CAAC;IACtD,OAAO,EAAE,qBAAqB;IAC9B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,KAAK,CAAA;QAEvC,8EAA8E;QAC9E,MAAM,KAAK,GAAG;;;;;;;;;;2BAUS,OAAO,CAAC,SAAS;2BACjB,OAAO,CAAC,MAAM;cAC3B,yBAAyB;KAClC,CAAA;QAED,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAEtD,yDAAyD;QACzD,MAAM,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACzC,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;YAEjE,mDAAmD;YACnD,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAA;YACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,eAAe,EAAE,aAAa,CAAC,CAAA;YAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,cAAc,EAAE,UAAU,CAAC,YAAY,CAAC,CAAA;YACrE,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;YAE1C,OAAO;gBACL,UAAU,EAAE,UAAU;gBACtB,WAAW,EAAE,UAAU,CAAC,YAAY;gBACpC,IAAI,EAAE,IAAI,IAAI,EAAE;aACjB,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,OAAO;YACL,eAAe,EAAE,eAAe;SACjC,CAAA;IACH,CAAC;CACF,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,+BAA+B,GAAG,gBAAgB,CAAC;IACvD,OAAO,EAAE,sBAAsB;IAC/B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChC,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAA;QAE5B,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;QACtE,CAAC;QAED,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC,CAAA;QACnE,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC,CAAA;QAEjE,0DAA0D;QAC1D,OAAO;YACL,WAAW,EAAE;gBACX,UAAU,EAAE,UAAU;gBACtB,WAAW,EAAE,aAAa,EAAE,WAAW,IAAI,YAAY;gBACvD,cAAc,EAAE,aAAa,EAAE,cAAc;aAC9C;SACF,CAAA;IACH,CAAC;CACF,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,gCAAgC,GAAG,gBAAgB,CAAC;IACxD,OAAO,EAAE,uBAAuB;IAChC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChC,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAA;QAE5B,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;QACvE,CAAC;QAED,0CAA0C;QAC1C,MAAM,KAAK,GAAG;;;;;;;4BAOU,UAAU;2BACX,OAAO,CAAC,MAAM;2BACd,OAAO,CAAC,SAAS;cAC9B,yBAAyB;KAClC,CAAA;QAED,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAEtD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,yBAAyB,CAAC,yCAAyC,UAAU,EAAE,CAAC,CAAA;QAC5F,CAAC;QAED,MAAM,EAAE,aAAa,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAEnD,2DAA2D;QAC3D,OAAO;YACL,cAAc,EAAE,GAAG,EAAE,mDAAmD;YACxE,MAAM,EAAE,kBAAkB,CAAC,aAAa,CAAC,MAAM,CAAC;SACjD,CAAA;IACH,CAAC;CACF,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,mCAAmC,GAAG,gBAAgB,CAAC;IAC3D,OAAO,EAAE,0BAA0B;IACnC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChC,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAA;QAE7B,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;QAC3E,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;QAElD,8DAA8D;QAC9D,OAAO;YACL,IAAI,EAAE,IAAI;SACX,CAAA;IACH,CAAC;CACF,CAAC,CAAA"}
@@ -0,0 +1,22 @@
1
+ import { AwsCredentialIdentityWithMetaData } from '../../aws/coreAuth.js';
2
+ import { AbstractClient } from '../../customClients/AbstractClient.js';
3
+ import { AwsConfigClientContext } from '../AwsConfigClientContext.js';
4
+ /**
5
+ * AWS Config-based Kinesis client implementation
6
+ * Returns empty responses since stream policies are not tracked in AWS Config
7
+ *
8
+ * Since policies are not available in AWS Config, this client provides limited functionality
9
+ * and returns empty results for all operations.
10
+ */
11
+ export declare class AwsConfigKinesisClient extends AbstractClient<AwsConfigClientContext> {
12
+ static readonly clientName: string;
13
+ constructor(options: {
14
+ credentials: AwsCredentialIdentityWithMetaData;
15
+ region: string | undefined;
16
+ }, customContext: AwsConfigClientContext);
17
+ /**
18
+ * Register all Kinesis command implementations
19
+ */
20
+ protected registerCommands(): void;
21
+ }
22
+ //# sourceMappingURL=AwsConfigKinesisClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AwsConfigKinesisClient.d.ts","sourceRoot":"","sources":["../../../../src/awsConfigClients/clients/AwsConfigKinesisClient.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,iCAAiC,EAAE,MAAM,uBAAuB,CAAA;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAA;AACtE,OAAO,EAAE,sBAAsB,EAAoB,MAAM,8BAA8B,CAAA;AAEvF;;;;;;GAMG;AACH,qBAAa,sBAAuB,SAAQ,cAAc,CAAC,sBAAsB,CAAC;IAChF,MAAM,CAAC,QAAQ,CAAC,UAAU,SAAqB;gBAG7C,OAAO,EAAE;QACP,WAAW,EAAE,iCAAiC,CAAA;QAC9C,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;KAC3B,EACD,aAAa,EAAE,sBAAsB;IAKvC;;OAEG;IACH,SAAS,CAAC,gBAAgB,IAAI,IAAI;CAMnC"}