aws-iam-language-server 0.0.8 → 0.0.10

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 (493) hide show
  1. package/package.json +1 -1
  2. package/readme.md +9 -0
  3. package/src/data/servicereference/actions.json +1 -1
  4. package/src/data/servicereference/services/a2c.json +1 -1
  5. package/src/data/servicereference/services/a4b.json +1 -1
  6. package/src/data/servicereference/services/access-analyzer.json +1 -1
  7. package/src/data/servicereference/services/account.json +1 -1
  8. package/src/data/servicereference/services/acm-pca.json +1 -1
  9. package/src/data/servicereference/services/acm.json +1 -1
  10. package/src/data/servicereference/services/aco-automation.json +1 -1
  11. package/src/data/servicereference/services/action-recommendations.json +1 -1
  12. package/src/data/servicereference/services/activate.json +1 -1
  13. package/src/data/servicereference/services/aidevops.json +1 -1
  14. package/src/data/servicereference/services/aiops.json +1 -1
  15. package/src/data/servicereference/services/airflow-serverless.json +1 -1
  16. package/src/data/servicereference/services/airflow.json +1 -1
  17. package/src/data/servicereference/services/amplify.json +1 -1
  18. package/src/data/servicereference/services/amplifybackend.json +1 -1
  19. package/src/data/servicereference/services/amplifyuibuilder.json +1 -1
  20. package/src/data/servicereference/services/aoss.json +1 -1
  21. package/src/data/servicereference/services/apigateway.json +1 -1
  22. package/src/data/servicereference/services/app-integrations.json +1 -1
  23. package/src/data/servicereference/services/appconfig.json +1 -1
  24. package/src/data/servicereference/services/appfabric.json +1 -1
  25. package/src/data/servicereference/services/appflow.json +1 -1
  26. package/src/data/servicereference/services/application-autoscaling.json +1 -1
  27. package/src/data/servicereference/services/application-signals.json +1 -1
  28. package/src/data/servicereference/services/application-transformation.json +1 -1
  29. package/src/data/servicereference/services/applicationinsights.json +1 -1
  30. package/src/data/servicereference/services/appmesh-preview.json +1 -1
  31. package/src/data/servicereference/services/appmesh.json +1 -1
  32. package/src/data/servicereference/services/apprunner.json +1 -1
  33. package/src/data/servicereference/services/appstream.json +1 -1
  34. package/src/data/servicereference/services/appstudio.json +1 -1
  35. package/src/data/servicereference/services/appsync.json +1 -1
  36. package/src/data/servicereference/services/apptest.json +1 -1
  37. package/src/data/servicereference/services/aps.json +1 -1
  38. package/src/data/servicereference/services/arc-region-switch.json +1 -1
  39. package/src/data/servicereference/services/arc-zonal-shift.json +1 -1
  40. package/src/data/servicereference/services/arsenal.json +1 -1
  41. package/src/data/servicereference/services/artifact.json +1 -1
  42. package/src/data/servicereference/services/athena.json +1 -1
  43. package/src/data/servicereference/services/auditmanager.json +1 -1
  44. package/src/data/servicereference/services/autoscaling-plans.json +1 -1
  45. package/src/data/servicereference/services/autoscaling.json +1 -1
  46. package/src/data/servicereference/services/aws-marketplace-management.json +1 -1
  47. package/src/data/servicereference/services/aws-marketplace.json +1 -1
  48. package/src/data/servicereference/services/aws-mcp.json +1 -1
  49. package/src/data/servicereference/services/aws-portal.json +1 -1
  50. package/src/data/servicereference/services/awsconnector.json +1 -1
  51. package/src/data/servicereference/services/b2bi.json +1 -1
  52. package/src/data/servicereference/services/backup-gateway.json +1 -1
  53. package/src/data/servicereference/services/backup-search.json +1 -1
  54. package/src/data/servicereference/services/backup-storage.json +1 -1
  55. package/src/data/servicereference/services/backup.json +1 -1
  56. package/src/data/servicereference/services/batch.json +1 -1
  57. package/src/data/servicereference/services/bcm-dashboards.json +1 -1
  58. package/src/data/servicereference/services/bcm-data-exports.json +1 -1
  59. package/src/data/servicereference/services/bcm-pricing-calculator.json +1 -1
  60. package/src/data/servicereference/services/bcm-recommended-actions.json +1 -1
  61. package/src/data/servicereference/services/bedrock-agentcore.json +1 -1
  62. package/src/data/servicereference/services/bedrock-mantle.json +1 -1
  63. package/src/data/servicereference/services/bedrock.json +1 -1
  64. package/src/data/servicereference/services/billing.json +1 -1
  65. package/src/data/servicereference/services/billingconductor.json +1 -1
  66. package/src/data/servicereference/services/braket.json +1 -1
  67. package/src/data/servicereference/services/budgets.json +1 -1
  68. package/src/data/servicereference/services/bugbust.json +1 -1
  69. package/src/data/servicereference/services/cases.json +1 -1
  70. package/src/data/servicereference/services/cassandra.json +1 -1
  71. package/src/data/servicereference/services/ce.json +1 -1
  72. package/src/data/servicereference/services/chatbot.json +1 -1
  73. package/src/data/servicereference/services/chime.json +1 -1
  74. package/src/data/servicereference/services/cleanrooms-ml.json +1 -1
  75. package/src/data/servicereference/services/cleanrooms.json +1 -1
  76. package/src/data/servicereference/services/cloud9.json +1 -1
  77. package/src/data/servicereference/services/clouddirectory.json +1 -1
  78. package/src/data/servicereference/services/cloudformation.json +1 -1
  79. package/src/data/servicereference/services/cloudfront-keyvaluestore.json +1 -1
  80. package/src/data/servicereference/services/cloudfront.json +1 -1
  81. package/src/data/servicereference/services/cloudhsm.json +1 -1
  82. package/src/data/servicereference/services/cloudsearch.json +1 -1
  83. package/src/data/servicereference/services/cloudshell.json +1 -1
  84. package/src/data/servicereference/services/cloudtrail-data.json +1 -1
  85. package/src/data/servicereference/services/cloudtrail.json +1 -1
  86. package/src/data/servicereference/services/cloudwatch.json +1 -1
  87. package/src/data/servicereference/services/codeartifact.json +1 -1
  88. package/src/data/servicereference/services/codebuild.json +1 -1
  89. package/src/data/servicereference/services/codecatalyst.json +1 -1
  90. package/src/data/servicereference/services/codecommit.json +1 -1
  91. package/src/data/servicereference/services/codeconnections.json +1 -1
  92. package/src/data/servicereference/services/codedeploy-commands-secure.json +1 -1
  93. package/src/data/servicereference/services/codedeploy.json +1 -1
  94. package/src/data/servicereference/services/codeguru-profiler.json +1 -1
  95. package/src/data/servicereference/services/codeguru-reviewer.json +1 -1
  96. package/src/data/servicereference/services/codeguru-security.json +1 -1
  97. package/src/data/servicereference/services/codeguru.json +1 -1
  98. package/src/data/servicereference/services/codepipeline.json +1 -1
  99. package/src/data/servicereference/services/codestar-connections.json +1 -1
  100. package/src/data/servicereference/services/codestar-notifications.json +1 -1
  101. package/src/data/servicereference/services/codestar.json +1 -1
  102. package/src/data/servicereference/services/codewhisperer.json +1 -1
  103. package/src/data/servicereference/services/cognito-identity.json +1 -1
  104. package/src/data/servicereference/services/cognito-idp.json +1 -1
  105. package/src/data/servicereference/services/cognito-sync.json +1 -1
  106. package/src/data/servicereference/services/comprehend.json +1 -1
  107. package/src/data/servicereference/services/comprehendmedical.json +1 -1
  108. package/src/data/servicereference/services/compute-optimizer.json +1 -1
  109. package/src/data/servicereference/services/config.json +1 -1
  110. package/src/data/servicereference/services/connect-campaigns.json +1 -1
  111. package/src/data/servicereference/services/connect.json +1 -1
  112. package/src/data/servicereference/services/consoleapp.json +1 -1
  113. package/src/data/servicereference/services/consolidatedbilling.json +1 -1
  114. package/src/data/servicereference/services/controlcatalog.json +1 -1
  115. package/src/data/servicereference/services/controltower.json +1 -1
  116. package/src/data/servicereference/services/cost-optimization-hub.json +1 -1
  117. package/src/data/servicereference/services/cur.json +1 -1
  118. package/src/data/servicereference/services/customer-verification.json +1 -1
  119. package/src/data/servicereference/services/databrew.json +1 -1
  120. package/src/data/servicereference/services/dataexchange.json +1 -1
  121. package/src/data/servicereference/services/datapipeline.json +1 -1
  122. package/src/data/servicereference/services/datasync.json +1 -1
  123. package/src/data/servicereference/services/datazone.json +1 -1
  124. package/src/data/servicereference/services/dax.json +1 -1
  125. package/src/data/servicereference/services/dbqms.json +1 -1
  126. package/src/data/servicereference/services/deadline.json +1 -1
  127. package/src/data/servicereference/services/detective.json +1 -1
  128. package/src/data/servicereference/services/devicefarm.json +1 -1
  129. package/src/data/servicereference/services/devops-guru.json +1 -1
  130. package/src/data/servicereference/services/directconnect.json +1 -1
  131. package/src/data/servicereference/services/discovery.json +1 -1
  132. package/src/data/servicereference/services/dlm.json +1 -1
  133. package/src/data/servicereference/services/dms.json +1 -1
  134. package/src/data/servicereference/services/docdb-elastic.json +1 -1
  135. package/src/data/servicereference/services/drs.json +1 -1
  136. package/src/data/servicereference/services/ds-data.json +1 -1
  137. package/src/data/servicereference/services/ds.json +1 -1
  138. package/src/data/servicereference/services/dsql.json +1 -1
  139. package/src/data/servicereference/services/dynamodb.json +1 -1
  140. package/src/data/servicereference/services/ebs.json +1 -1
  141. package/src/data/servicereference/services/ec2-instance-connect.json +1 -1
  142. package/src/data/servicereference/services/ec2.json +1 -1
  143. package/src/data/servicereference/services/ec2messages.json +1 -1
  144. package/src/data/servicereference/services/ecr-public.json +1 -1
  145. package/src/data/servicereference/services/ecr.json +1 -1
  146. package/src/data/servicereference/services/ecs-mcp.json +1 -1
  147. package/src/data/servicereference/services/ecs.json +1 -1
  148. package/src/data/servicereference/services/eks-auth.json +1 -1
  149. package/src/data/servicereference/services/eks-mcp.json +1 -1
  150. package/src/data/servicereference/services/eks.json +1 -1
  151. package/src/data/servicereference/services/elasticache.json +1 -1
  152. package/src/data/servicereference/services/elasticbeanstalk.json +1 -1
  153. package/src/data/servicereference/services/elasticfilesystem.json +1 -1
  154. package/src/data/servicereference/services/elasticloadbalancing.json +1 -1
  155. package/src/data/servicereference/services/elasticmapreduce.json +1 -1
  156. package/src/data/servicereference/services/elastictranscoder.json +1 -1
  157. package/src/data/servicereference/services/elemental-activations.json +1 -1
  158. package/src/data/servicereference/services/elemental-appliances-software.json +1 -1
  159. package/src/data/servicereference/services/elemental-inference.json +1 -1
  160. package/src/data/servicereference/services/elemental-support-cases.json +1 -1
  161. package/src/data/servicereference/services/elemental-support-content.json +1 -1
  162. package/src/data/servicereference/services/emr-containers.json +1 -1
  163. package/src/data/servicereference/services/emr-serverless.json +1 -1
  164. package/src/data/servicereference/services/entityresolution.json +1 -1
  165. package/src/data/servicereference/services/es.json +1 -1
  166. package/src/data/servicereference/services/events.json +1 -1
  167. package/src/data/servicereference/services/evidently.json +1 -1
  168. package/src/data/servicereference/services/evs.json +1 -1
  169. package/src/data/servicereference/services/execute-api.json +1 -1
  170. package/src/data/servicereference/services/finspace-api.json +1 -1
  171. package/src/data/servicereference/services/finspace.json +1 -1
  172. package/src/data/servicereference/services/firehose.json +1 -1
  173. package/src/data/servicereference/services/fis.json +1 -1
  174. package/src/data/servicereference/services/fms.json +1 -1
  175. package/src/data/servicereference/services/forecast.json +1 -1
  176. package/src/data/servicereference/services/frauddetector.json +1 -1
  177. package/src/data/servicereference/services/freertos.json +1 -1
  178. package/src/data/servicereference/services/freetier.json +1 -1
  179. package/src/data/servicereference/services/fsx.json +1 -1
  180. package/src/data/servicereference/services/gamelift.json +1 -1
  181. package/src/data/servicereference/services/gameliftstreams.json +1 -1
  182. package/src/data/servicereference/services/geo-maps.json +1 -1
  183. package/src/data/servicereference/services/geo-places.json +1 -1
  184. package/src/data/servicereference/services/geo-routes.json +1 -1
  185. package/src/data/servicereference/services/geo.json +1 -1
  186. package/src/data/servicereference/services/glacier.json +1 -1
  187. package/src/data/servicereference/services/globalaccelerator.json +1 -1
  188. package/src/data/servicereference/services/glue.json +1 -1
  189. package/src/data/servicereference/services/grafana.json +1 -1
  190. package/src/data/servicereference/services/greengrass.json +1 -1
  191. package/src/data/servicereference/services/groundstation.json +1 -1
  192. package/src/data/servicereference/services/groundtruthlabeling.json +1 -1
  193. package/src/data/servicereference/services/guardduty.json +1 -1
  194. package/src/data/servicereference/services/health-agent.json +1 -1
  195. package/src/data/servicereference/services/health.json +1 -1
  196. package/src/data/servicereference/services/healthlake.json +1 -1
  197. package/src/data/servicereference/services/honeycode.json +1 -1
  198. package/src/data/servicereference/services/iam.json +1 -1
  199. package/src/data/servicereference/services/identity-sync.json +1 -1
  200. package/src/data/servicereference/services/identitystore-auth.json +1 -1
  201. package/src/data/servicereference/services/identitystore.json +1 -1
  202. package/src/data/servicereference/services/imagebuilder.json +1 -1
  203. package/src/data/servicereference/services/importexport.json +1 -1
  204. package/src/data/servicereference/services/inspector-scan.json +1 -1
  205. package/src/data/servicereference/services/inspector.json +1 -1
  206. package/src/data/servicereference/services/inspector2-telemetry.json +1 -1
  207. package/src/data/servicereference/services/inspector2.json +1 -1
  208. package/src/data/servicereference/services/interconnect.json +1 -1
  209. package/src/data/servicereference/services/internetmonitor.json +1 -1
  210. package/src/data/servicereference/services/invoicing.json +1 -1
  211. package/src/data/servicereference/services/iot-device-tester.json +1 -1
  212. package/src/data/servicereference/services/iot.json +1 -1
  213. package/src/data/servicereference/services/iotanalytics.json +1 -1
  214. package/src/data/servicereference/services/iotdeviceadvisor.json +1 -1
  215. package/src/data/servicereference/services/iotevents.json +1 -1
  216. package/src/data/servicereference/services/iotfleethub.json +1 -1
  217. package/src/data/servicereference/services/iotfleetwise.json +1 -1
  218. package/src/data/servicereference/services/iotjobsdata.json +1 -1
  219. package/src/data/servicereference/services/iotmanagedintegrations.json +1 -1
  220. package/src/data/servicereference/services/iotsitewise.json +1 -1
  221. package/src/data/servicereference/services/iottwinmaker.json +1 -1
  222. package/src/data/servicereference/services/iotwireless.json +1 -1
  223. package/src/data/servicereference/services/iq-permission.json +1 -1
  224. package/src/data/servicereference/services/iq.json +1 -1
  225. package/src/data/servicereference/services/ivs.json +1 -1
  226. package/src/data/servicereference/services/ivschat.json +1 -1
  227. package/src/data/servicereference/services/kafka-cluster.json +1 -1
  228. package/src/data/servicereference/services/kafka.json +1 -1
  229. package/src/data/servicereference/services/kafkaconnect.json +1 -1
  230. package/src/data/servicereference/services/kendra-ranking.json +1 -1
  231. package/src/data/servicereference/services/kendra.json +1 -1
  232. package/src/data/servicereference/services/kinesis.json +1 -1
  233. package/src/data/servicereference/services/kinesisanalytics.json +1 -1
  234. package/src/data/servicereference/services/kinesisvideo.json +1 -1
  235. package/src/data/servicereference/services/kms.json +1 -1
  236. package/src/data/servicereference/services/lakeformation.json +1 -1
  237. package/src/data/servicereference/services/lambda.json +1 -1
  238. package/src/data/servicereference/services/launchwizard.json +1 -1
  239. package/src/data/servicereference/services/lex.json +1 -1
  240. package/src/data/servicereference/services/license-manager-linux-subscriptions.json +1 -1
  241. package/src/data/servicereference/services/license-manager-user-subscriptions.json +1 -1
  242. package/src/data/servicereference/services/license-manager.json +1 -1
  243. package/src/data/servicereference/services/lightsail.json +1 -1
  244. package/src/data/servicereference/services/logs.json +1 -1
  245. package/src/data/servicereference/services/lookoutequipment.json +1 -1
  246. package/src/data/servicereference/services/lookoutmetrics.json +1 -1
  247. package/src/data/servicereference/services/lookoutvision.json +1 -1
  248. package/src/data/servicereference/services/m2.json +1 -1
  249. package/src/data/servicereference/services/machinelearning.json +1 -1
  250. package/src/data/servicereference/services/macie2.json +1 -1
  251. package/src/data/servicereference/services/managedblockchain-query.json +1 -1
  252. package/src/data/servicereference/services/managedblockchain.json +1 -1
  253. package/src/data/servicereference/services/mapcredits.json +1 -1
  254. package/src/data/servicereference/services/marketplacecommerceanalytics.json +1 -1
  255. package/src/data/servicereference/services/mechanicalturk.json +1 -1
  256. package/src/data/servicereference/services/mediaconnect.json +1 -1
  257. package/src/data/servicereference/services/mediaconvert.json +1 -1
  258. package/src/data/servicereference/services/mediaimport.json +1 -1
  259. package/src/data/servicereference/services/medialive.json +1 -1
  260. package/src/data/servicereference/services/mediapackage-vod.json +1 -1
  261. package/src/data/servicereference/services/mediapackage.json +1 -1
  262. package/src/data/servicereference/services/mediapackagev2.json +1 -1
  263. package/src/data/servicereference/services/mediastore.json +1 -1
  264. package/src/data/servicereference/services/mediatailor.json +1 -1
  265. package/src/data/servicereference/services/medical-imaging.json +1 -1
  266. package/src/data/servicereference/services/memorydb.json +1 -1
  267. package/src/data/servicereference/services/mgh.json +1 -1
  268. package/src/data/servicereference/services/mgn.json +1 -1
  269. package/src/data/servicereference/services/migrationhub-orchestrator.json +1 -1
  270. package/src/data/servicereference/services/migrationhub-strategy.json +1 -1
  271. package/src/data/servicereference/services/mobileanalytics.json +1 -1
  272. package/src/data/servicereference/services/mobiletargeting.json +1 -1
  273. package/src/data/servicereference/services/monitron.json +1 -1
  274. package/src/data/servicereference/services/mpa.json +1 -1
  275. package/src/data/servicereference/services/mq.json +1 -1
  276. package/src/data/servicereference/services/neptune-db.json +1 -1
  277. package/src/data/servicereference/services/neptune-graph.json +1 -1
  278. package/src/data/servicereference/services/network-firewall.json +1 -1
  279. package/src/data/servicereference/services/network-security-director.json +1 -1
  280. package/src/data/servicereference/services/networkflowmonitor.json +1 -1
  281. package/src/data/servicereference/services/networkmanager-chat.json +1 -1
  282. package/src/data/servicereference/services/networkmanager.json +1 -1
  283. package/src/data/servicereference/services/networkmonitor.json +1 -1
  284. package/src/data/servicereference/services/nimble.json +1 -1
  285. package/src/data/servicereference/services/notifications-contacts.json +1 -1
  286. package/src/data/servicereference/services/notifications.json +1 -1
  287. package/src/data/servicereference/services/nova-act.json +1 -1
  288. package/src/data/servicereference/services/oam.json +1 -1
  289. package/src/data/servicereference/services/observabilityadmin.json +1 -1
  290. package/src/data/servicereference/services/odb.json +1 -1
  291. package/src/data/servicereference/services/omics.json +1 -1
  292. package/src/data/servicereference/services/one.json +1 -1
  293. package/src/data/servicereference/services/opensearch.json +1 -1
  294. package/src/data/servicereference/services/opsworks-cm.json +1 -1
  295. package/src/data/servicereference/services/opsworks.json +1 -1
  296. package/src/data/servicereference/services/organizations.json +1 -1
  297. package/src/data/servicereference/services/osis.json +1 -1
  298. package/src/data/servicereference/services/outposts.json +1 -1
  299. package/src/data/servicereference/services/panorama.json +1 -1
  300. package/src/data/servicereference/services/partnercentral-account-management.json +1 -1
  301. package/src/data/servicereference/services/partnercentral.json +1 -1
  302. package/src/data/servicereference/services/payment-cryptography.json +1 -1
  303. package/src/data/servicereference/services/payments.json +1 -1
  304. package/src/data/servicereference/services/pca-connector-ad.json +1 -1
  305. package/src/data/servicereference/services/pca-connector-scep.json +1 -1
  306. package/src/data/servicereference/services/pcs.json +1 -1
  307. package/src/data/servicereference/services/personalize.json +1 -1
  308. package/src/data/servicereference/services/pi.json +1 -1
  309. package/src/data/servicereference/services/pipes.json +1 -1
  310. package/src/data/servicereference/services/polly.json +1 -1
  311. package/src/data/servicereference/services/pricing.json +1 -1
  312. package/src/data/servicereference/services/pricingplanmanager.json +1 -1
  313. package/src/data/servicereference/services/private-networks.json +1 -1
  314. package/src/data/servicereference/services/profile.json +1 -1
  315. package/src/data/servicereference/services/proton.json +1 -1
  316. package/src/data/servicereference/services/purchase-orders.json +1 -1
  317. package/src/data/servicereference/services/q.json +1 -1
  318. package/src/data/servicereference/services/qapps.json +1 -1
  319. package/src/data/servicereference/services/qbusiness.json +1 -1
  320. package/src/data/servicereference/services/qdeveloper.json +1 -1
  321. package/src/data/servicereference/services/qldb.json +1 -1
  322. package/src/data/servicereference/services/quicksight.json +1 -1
  323. package/src/data/servicereference/services/ram.json +1 -1
  324. package/src/data/servicereference/services/rbin.json +1 -1
  325. package/src/data/servicereference/services/rds-data.json +1 -1
  326. package/src/data/servicereference/services/rds-db.json +1 -1
  327. package/src/data/servicereference/services/rds.json +1 -1
  328. package/src/data/servicereference/services/redshift-data.json +1 -1
  329. package/src/data/servicereference/services/redshift-serverless.json +1 -1
  330. package/src/data/servicereference/services/redshift.json +1 -1
  331. package/src/data/servicereference/services/refactor-spaces.json +1 -1
  332. package/src/data/servicereference/services/rekognition.json +1 -1
  333. package/src/data/servicereference/services/repostspace.json +1 -1
  334. package/src/data/servicereference/services/resiliencehub.json +1 -1
  335. package/src/data/servicereference/services/resource-explorer-2.json +1 -1
  336. package/src/data/servicereference/services/resource-explorer.json +1 -1
  337. package/src/data/servicereference/services/resource-groups.json +1 -1
  338. package/src/data/servicereference/services/rhelkb.json +1 -1
  339. package/src/data/servicereference/services/robomaker.json +1 -1
  340. package/src/data/servicereference/services/rolesanywhere.json +1 -1
  341. package/src/data/servicereference/services/route53-recovery-cluster.json +1 -1
  342. package/src/data/servicereference/services/route53-recovery-control-config.json +1 -1
  343. package/src/data/servicereference/services/route53-recovery-readiness.json +1 -1
  344. package/src/data/servicereference/services/route53.json +1 -1
  345. package/src/data/servicereference/services/route53domains.json +1 -1
  346. package/src/data/servicereference/services/route53globalresolver.json +1 -1
  347. package/src/data/servicereference/services/route53profiles.json +1 -1
  348. package/src/data/servicereference/services/route53resolver.json +1 -1
  349. package/src/data/servicereference/services/rtbfabric.json +1 -1
  350. package/src/data/servicereference/services/rum.json +1 -1
  351. package/src/data/servicereference/services/s3-object-lambda.json +1 -1
  352. package/src/data/servicereference/services/s3-outposts.json +1 -1
  353. package/src/data/servicereference/services/s3.json +1 -1
  354. package/src/data/servicereference/services/s3express.json +1 -1
  355. package/src/data/servicereference/services/s3tables.json +1 -1
  356. package/src/data/servicereference/services/s3vectors.json +1 -1
  357. package/src/data/servicereference/services/sagemaker-data-science-assistant.json +1 -1
  358. package/src/data/servicereference/services/sagemaker-geospatial.json +1 -1
  359. package/src/data/servicereference/services/sagemaker-mlflow.json +1 -1
  360. package/src/data/servicereference/services/sagemaker-unified-studio-mcp.json +1 -1
  361. package/src/data/servicereference/services/sagemaker.json +1 -1
  362. package/src/data/servicereference/services/savingsplans.json +1 -1
  363. package/src/data/servicereference/services/scheduler.json +1 -1
  364. package/src/data/servicereference/services/schemas.json +1 -1
  365. package/src/data/servicereference/services/scn.json +1 -1
  366. package/src/data/servicereference/services/sdb.json +1 -1
  367. package/src/data/servicereference/services/secretsmanager.json +1 -1
  368. package/src/data/servicereference/services/security-ir.json +1 -1
  369. package/src/data/servicereference/services/securityagent.json +1 -1
  370. package/src/data/servicereference/services/securityhub.json +1 -1
  371. package/src/data/servicereference/services/securitylake.json +1 -1
  372. package/src/data/servicereference/services/serverlessrepo.json +1 -1
  373. package/src/data/servicereference/services/servicecatalog.json +1 -1
  374. package/src/data/servicereference/services/servicediscovery.json +1 -1
  375. package/src/data/servicereference/services/serviceextract.json +1 -1
  376. package/src/data/servicereference/services/servicequotas.json +1 -1
  377. package/src/data/servicereference/services/ses.json +1 -1
  378. package/src/data/servicereference/services/shield.json +1 -1
  379. package/src/data/servicereference/services/signer.json +1 -1
  380. package/src/data/servicereference/services/signin.json +1 -1
  381. package/src/data/servicereference/services/simspaceweaver.json +1 -1
  382. package/src/data/servicereference/services/sms-voice.json +1 -1
  383. package/src/data/servicereference/services/sms.json +1 -1
  384. package/src/data/servicereference/services/snow-device-management.json +1 -1
  385. package/src/data/servicereference/services/snowball.json +1 -1
  386. package/src/data/servicereference/services/sns.json +1 -1
  387. package/src/data/servicereference/services/social-messaging.json +1 -1
  388. package/src/data/servicereference/services/sqlworkbench.json +1 -1
  389. package/src/data/servicereference/services/sqs.json +1 -1
  390. package/src/data/servicereference/services/ssm-contacts.json +1 -1
  391. package/src/data/servicereference/services/ssm-guiconnect.json +1 -1
  392. package/src/data/servicereference/services/ssm-incidents.json +1 -1
  393. package/src/data/servicereference/services/ssm-quicksetup.json +1 -1
  394. package/src/data/servicereference/services/ssm-sap.json +1 -1
  395. package/src/data/servicereference/services/ssm.json +1 -1
  396. package/src/data/servicereference/services/ssmmessages.json +1 -1
  397. package/src/data/servicereference/services/sso-directory.json +1 -1
  398. package/src/data/servicereference/services/sso-oauth.json +1 -1
  399. package/src/data/servicereference/services/sso.json +1 -1
  400. package/src/data/servicereference/services/states.json +1 -1
  401. package/src/data/servicereference/services/storagegateway.json +1 -1
  402. package/src/data/servicereference/services/sts.json +1 -1
  403. package/src/data/servicereference/services/support-console.json +1 -1
  404. package/src/data/servicereference/services/support.json +1 -1
  405. package/src/data/servicereference/services/supportapp.json +1 -1
  406. package/src/data/servicereference/services/supportplans.json +1 -1
  407. package/src/data/servicereference/services/sustainability.json +1 -1
  408. package/src/data/servicereference/services/swf.json +1 -1
  409. package/src/data/servicereference/services/synthetics.json +1 -1
  410. package/src/data/servicereference/services/tag.json +1 -1
  411. package/src/data/servicereference/services/tax.json +1 -1
  412. package/src/data/servicereference/services/textract.json +1 -1
  413. package/src/data/servicereference/services/thinclient.json +1 -1
  414. package/src/data/servicereference/services/timestream-influxdb.json +1 -1
  415. package/src/data/servicereference/services/timestream.json +1 -1
  416. package/src/data/servicereference/services/tiros.json +1 -1
  417. package/src/data/servicereference/services/tnb.json +1 -1
  418. package/src/data/servicereference/services/transcribe.json +1 -1
  419. package/src/data/servicereference/services/transfer.json +1 -1
  420. package/src/data/servicereference/services/transform-custom.json +1 -1
  421. package/src/data/servicereference/services/transform.json +1 -1
  422. package/src/data/servicereference/services/translate.json +1 -1
  423. package/src/data/servicereference/services/trustedadvisor.json +1 -1
  424. package/src/data/servicereference/services/ts.json +1 -1
  425. package/src/data/servicereference/services/user-subscriptions.json +1 -1
  426. package/src/data/servicereference/services/uxc.json +1 -1
  427. package/src/data/servicereference/services/vendor-insights.json +1 -1
  428. package/src/data/servicereference/services/verified-access.json +1 -1
  429. package/src/data/servicereference/services/verifiedpermissions.json +1 -1
  430. package/src/data/servicereference/services/voiceid.json +1 -1
  431. package/src/data/servicereference/services/vpc-lattice-svcs.json +1 -1
  432. package/src/data/servicereference/services/vpc-lattice.json +1 -1
  433. package/src/data/servicereference/services/vpce.json +1 -1
  434. package/src/data/servicereference/services/waf-regional.json +1 -1
  435. package/src/data/servicereference/services/waf.json +1 -1
  436. package/src/data/servicereference/services/wafv2.json +1 -1
  437. package/src/data/servicereference/services/wam.json +1 -1
  438. package/src/data/servicereference/services/wellarchitected.json +1 -1
  439. package/src/data/servicereference/services/wickr.json +1 -1
  440. package/src/data/servicereference/services/wisdom.json +1 -1
  441. package/src/data/servicereference/services/workdocs.json +1 -1
  442. package/src/data/servicereference/services/worklink.json +1 -1
  443. package/src/data/servicereference/services/workmail.json +1 -1
  444. package/src/data/servicereference/services/workmailmessageflow.json +1 -1
  445. package/src/data/servicereference/services/workspaces-instances.json +1 -1
  446. package/src/data/servicereference/services/workspaces-web.json +1 -1
  447. package/src/data/servicereference/services/workspaces.json +1 -1
  448. package/src/data/servicereference/services/xray.json +1 -1
  449. package/src/extension.js +1 -6
  450. package/src/handlers/completion/action-value.d.ts +2 -2
  451. package/src/handlers/completion/action-value.js +37 -20
  452. package/src/handlers/completion/condition-block.d.ts +1 -1
  453. package/src/handlers/completion/condition-block.js +3 -0
  454. package/src/handlers/completion/condition-key.d.ts +1 -1
  455. package/src/handlers/completion/condition-key.js +4 -0
  456. package/src/handlers/completion/condition-operator.d.ts +1 -1
  457. package/src/handlers/completion/condition-operator.js +3 -0
  458. package/src/handlers/completion/effect-value.d.ts +2 -2
  459. package/src/handlers/completion/effect-value.js +4 -1
  460. package/src/handlers/completion/index.d.ts +15 -2
  461. package/src/handlers/completion/index.js +21 -3
  462. package/src/handlers/completion/principal-block-identifier.d.ts +1 -1
  463. package/src/handlers/completion/principal-block-identifier.js +2 -2
  464. package/src/handlers/completion/principal-block-type.d.ts +2 -2
  465. package/src/handlers/completion/principal-block-type.js +4 -1
  466. package/src/handlers/completion/principal-block.d.ts +1 -1
  467. package/src/handlers/completion/principal-block.js +3 -0
  468. package/src/handlers/completion/principal-identifier-completions.d.ts +4 -1
  469. package/src/handlers/completion/principal-identifier-completions.js +10 -6
  470. package/src/handlers/completion/principal-type.d.ts +1 -1
  471. package/src/handlers/completion/principal-type.js +3 -0
  472. package/src/handlers/completion/principal-typed-value.d.ts +1 -1
  473. package/src/handlers/completion/principal-typed-value.js +2 -2
  474. package/src/handlers/completion/principal-value.d.ts +2 -2
  475. package/src/handlers/completion/principal-value.js +4 -1
  476. package/src/handlers/completion/resource-value.d.ts +1 -1
  477. package/src/handlers/completion/resource-value.js +8 -1
  478. package/src/handlers/completion/statement-block.d.ts +1 -1
  479. package/src/handlers/completion/statement-block.js +3 -0
  480. package/src/handlers/completion/statement-key.d.ts +1 -1
  481. package/src/handlers/completion/statement-key.js +3 -0
  482. package/src/handlers/document-link/document-link.d.ts +4 -0
  483. package/src/handlers/document-link/document-link.js +37 -0
  484. package/src/lib/iam-policy/reference/services.d.ts +1 -1
  485. package/src/lib/iam-policy/reference/services.js +5 -1
  486. package/src/lib/iam-policy/reference/types.d.ts +5 -0
  487. package/src/lib/treesitter/base.d.ts +1 -0
  488. package/src/lib/treesitter/hcl.js +43 -29
  489. package/src/lib/treesitter/json.js +9 -8
  490. package/src/lib/treesitter/manager.d.ts +2 -0
  491. package/src/lib/treesitter/manager.js +7 -0
  492. package/src/lib/treesitter/yaml.js +54 -23
  493. package/src/server.js +6 -3
@@ -1 +1 @@
1
- {"name":"xray","actions":{"BatchGetTraceSummaryById":{"conditionKeys":[],"resources":[],"description":"Grants permission to retrieve metadata for a list of traces specified by ID","accessLevel":"Read","resourceTypes":[],"permissionOnly":true},"BatchGetTraces":{"conditionKeys":[],"resources":[],"description":"Grants permission to retrieve a list of traces specified by ID. Each trace is a collection of segment documents that originates from a single request. Use GetTraceSummaries to get a list of trace IDs","accessLevel":"List","resourceTypes":[]},"CancelTraceRetrieval":{"conditionKeys":[],"resources":[],"description":"Grants permission to cancel an ongoing trace retrieval job initiated by StartTraceRetrieval using the provided RetrievalToken. A successful cancellation will return an HTTP 200 response","accessLevel":"Read","resourceTypes":[]},"CreateGroup":{"conditionKeys":["aws:RequestTag/${TagKey}","aws:TagKeys"],"resources":[{"name":"group"}],"description":"Grants permission to create a group resource with a name and a filter expression","accessLevel":"Write","resourceTypes":[{"name":"group","required":true}]},"CreateSamplingRule":{"conditionKeys":["aws:RequestTag/${TagKey}","aws:TagKeys"],"resources":[{"name":"sampling-rule"}],"description":"Grants permission to create a rule to control sampling behavior for instrumented applications","accessLevel":"Write","resourceTypes":[{"name":"sampling-rule","required":true}]},"DeleteGroup":{"conditionKeys":["aws:ResourceTag/${TagKey}"],"resources":[{"name":"group"}],"description":"Grants permission to delete a group resource","accessLevel":"Write","resourceTypes":[{"name":"group","required":true}]},"DeleteResourcePolicy":{"conditionKeys":["xray:ResourcePolicyName"],"resources":[],"description":"Grants permission to delete resource policies","accessLevel":"Write","resourceTypes":[]},"DeleteSamplingRule":{"conditionKeys":["aws:ResourceTag/${TagKey}"],"resources":[{"name":"sampling-rule"}],"description":"Grants permission to delete a sampling rule","accessLevel":"Write","resourceTypes":[{"name":"sampling-rule","required":true}]},"GetDistinctTraceGraphs":{"conditionKeys":[],"resources":[],"description":"Grants permission to retrieve distinct service graphs for one or more specific trace IDs","accessLevel":"Read","resourceTypes":[],"permissionOnly":true},"GetEncryptionConfig":{"conditionKeys":[],"resources":[],"description":"Grants permission to retrieve the current encryption configuration for X-Ray data","accessLevel":"Read","resourceTypes":[]},"GetGroup":{"conditionKeys":["aws:ResourceTag/${TagKey}"],"resources":[{"name":"group"}],"description":"Grants permission to retrieve group resource details","accessLevel":"Read","resourceTypes":[{"name":"group","required":true}]},"GetGroups":{"conditionKeys":[],"resources":[],"description":"Grants permission to retrieve all active group details","accessLevel":"Read","resourceTypes":[]},"GetIndexingRules":{"conditionKeys":[],"resources":[],"description":"Grants permission to retrieve all indexing rules. Indexing rules are used to determine the server-side sampling rate for spans ingested through the CloudWatchLogs destination and indexed by X-Ray","accessLevel":"Read","resourceTypes":[]},"GetInsight":{"conditionKeys":[],"resources":[],"description":"Grants permission to retrieve the details of a specific insight","accessLevel":"Read","resourceTypes":[]},"GetInsightEvents":{"conditionKeys":[],"resources":[],"description":"Grants permission to retrieve the events of a specific insight","accessLevel":"Read","resourceTypes":[]},"GetInsightImpactGraph":{"conditionKeys":[],"resources":[],"description":"Grants permission to retrieve the part of the service graph which is impacted for a specific insight","accessLevel":"Read","resourceTypes":[]},"GetInsightSummaries":{"conditionKeys":[],"resources":[],"description":"Grants permission to retrieve the summary of all insights for a group and time range with optional filters","accessLevel":"Read","resourceTypes":[]},"GetRetrievedTracesGraph":{"conditionKeys":[],"resources":[],"description":"Grants permission to retrieve a service graph for traces based on the specified RetrievalToken from the Transaction Search CloudWatch log group","accessLevel":"Read","resourceTypes":[]},"GetSamplingRules":{"conditionKeys":[],"resources":[],"description":"Grants permission to retrieve all sampling rules","accessLevel":"Read","resourceTypes":[]},"GetSamplingStatisticSummaries":{"conditionKeys":[],"resources":[],"description":"Grants permission to retrieve information about recent sampling results for all sampling rules","accessLevel":"Read","resourceTypes":[]},"GetSamplingTargets":{"conditionKeys":[],"resources":[],"description":"Grants permission to request a sampling quota for rules that the service is using to sample requests","accessLevel":"Read","resourceTypes":[]},"GetServiceGraph":{"conditionKeys":[],"resources":[],"description":"Grants permission to retrieve a document that describes services that process incoming requests, and downstream services that they call as a result","accessLevel":"Read","resourceTypes":[]},"GetTimeSeriesServiceStatistics":{"conditionKeys":[],"resources":[],"description":"Grants permission to retrieve an aggregation of service statistics defined by a specific time range bucketed into time intervals","accessLevel":"Read","resourceTypes":[]},"GetTraceGraph":{"conditionKeys":[],"resources":[],"description":"Grants permission to retrieve a service graph for one or more specific trace IDs","accessLevel":"Read","resourceTypes":[]},"GetTraceSegmentDestination":{"conditionKeys":[],"resources":[],"description":"Grants permission to retrieve the current destination of data sent to PutTraceSegments and OpenTelemetry API","accessLevel":"Read","resourceTypes":[]},"GetTraceSummaries":{"conditionKeys":[],"resources":[],"description":"Grants permission to retrieve IDs and metadata for traces available for a specified time frame using an optional filter. To get the full traces, pass the trace IDs to BatchGetTraces","accessLevel":"Read","resourceTypes":[]},"Link":{"conditionKeys":[],"resources":[],"description":"Grants permission to share X-Ray resources with a monitoring account","accessLevel":"Write","resourceTypes":[],"permissionOnly":true},"ListResourcePolicies":{"conditionKeys":[],"resources":[],"description":"Grants permission to list resource policies","accessLevel":"List","resourceTypes":[]},"ListRetrievedTraces":{"conditionKeys":[],"resources":[],"description":"Grants permission to retrieve a list of traces for a given RetrievalToken from the Transaction Search CloudWatch log group","accessLevel":"List","resourceTypes":[]},"ListTagsForResource":{"conditionKeys":[],"resources":[{"name":"group"},{"name":"sampling-rule"}],"description":"Grants permission to list tags for an X-Ray resource","accessLevel":"List","resourceTypes":[{"name":"group","required":false},{"name":"sampling-rule","required":false}]},"PutEncryptionConfig":{"conditionKeys":[],"resources":[],"description":"Grants permission to update the encryption configuration for X-Ray data","accessLevel":"Permissions management","resourceTypes":[]},"PutResourcePolicy":{"conditionKeys":["xray:ResourcePolicyName"],"resources":[],"description":"Grants permission to create or update resource policies","accessLevel":"Write","resourceTypes":[]},"PutSpans":{"conditionKeys":["logs:LogGeneratingResourceArns"],"resources":[],"description":"Grants permission to upload OpenTelemetry spans to AWS X-Ray","accessLevel":"Write","resourceTypes":[]},"PutSpansForIndexing":{"conditionKeys":[],"resources":[],"description":"Grants permission to upload spans to AWS X-Ray to be indexed","accessLevel":"Write","resourceTypes":[],"permissionOnly":true},"PutTelemetryRecords":{"conditionKeys":[],"resources":[],"description":"Grants permission to send AWS X-Ray daemon telemetry to the service","accessLevel":"Write","resourceTypes":[]},"PutTraceSegments":{"conditionKeys":["logs:LogGeneratingResourceArns"],"resources":[],"description":"Grants permission to upload segment documents to AWS X-Ray. The X-Ray SDK generates segment documents and sends them to the X-Ray daemon, which uploads them in batches","accessLevel":"Write","resourceTypes":[]},"StartTraceRetrieval":{"conditionKeys":[],"resources":[],"description":"Grants permission to initiate a trace retrieval process using the specified time range and for the given trace IDs on the Transaction Search CloudWatch log group","accessLevel":"Read","resourceTypes":[]},"TagResource":{"conditionKeys":["aws:RequestTag/${TagKey}","aws:TagKeys"],"resources":[{"name":"group"},{"name":"sampling-rule"}],"description":"Grants permission to add tags to an X-Ray resource","accessLevel":"Tagging","resourceTypes":[{"name":"group","required":false},{"name":"sampling-rule","required":false}]},"UntagResource":{"conditionKeys":["aws:TagKeys"],"resources":[{"name":"group"},{"name":"sampling-rule"}],"description":"Grants permission to remove tags from an X-Ray resource","accessLevel":"Tagging","resourceTypes":[{"name":"group","required":false},{"name":"sampling-rule","required":false}]},"UpdateGroup":{"conditionKeys":["aws:ResourceTag/${TagKey}"],"resources":[{"name":"group"}],"description":"Grants permission to update a group resource","accessLevel":"Write","resourceTypes":[{"name":"group","required":true}]},"UpdateIndexingRule":{"conditionKeys":[],"resources":[],"description":"Grants permission to modify an indexing rule's configuration","accessLevel":"Write","resourceTypes":[]},"UpdateSamplingRule":{"conditionKeys":["aws:ResourceTag/${TagKey}"],"resources":[{"name":"sampling-rule"}],"description":"Grants permission to modify a sampling rule's configuration","accessLevel":"Write","resourceTypes":[{"name":"sampling-rule","required":true}]},"UpdateTraceSegmentDestination":{"conditionKeys":["xray:TraceSegmentDestination"],"resources":[],"description":"Grants permission to modify the destination of data sent to PutTraceSegments and OpenTelemetry API","accessLevel":"Write","resourceTypes":[]}},"resources":[{"name":"group","arnFormats":["arn:${Partition}:xray:${Region}:${Account}:group/${GroupName}/${Id}"],"conditionKeys":["aws:ResourceTag/${TagKey}"]},{"name":"sampling-rule","arnFormats":["arn:${Partition}:xray:${Region}:${Account}:sampling-rule/${SamplingRuleName}"],"conditionKeys":["aws:ResourceTag/${TagKey}"]}],"conditionKeys":{"aws:RequestTag/${TagKey}":{"types":["String"],"description":"Filters access by the tags that are passed in the request"},"aws:ResourceTag/${TagKey}":{"types":["String"],"description":"Filters access by the tags associated with the resource"},"aws:TagKeys":{"types":["ArrayOfString"],"description":"Filters access by the tag keys that are passed in the request"},"logs:LogGeneratingResourceArns":{"types":["ArrayOfARN"],"description":"Filters access by LogGeneratingResourceArn in the request"},"xray:ResourcePolicyName":{"types":["String"],"description":"Filters access by PolicyName in the request"},"xray:TraceSegmentDestination":{"types":["String"],"description":"Filters access by TraceSegmentDestination type in the request"}}}
1
+ {"name":"xray","actions":{"BatchGetTraceSummaryById":{"name":"BatchGetTraceSummaryById","service":"xray","conditionKeys":[],"resources":[],"description":"Grants permission to retrieve metadata for a list of traces specified by ID","accessLevel":"Read","resourceTypes":[],"permissionOnly":true,"operationUrl":"https://docs.aws.amazon.com/xray/latest/devguide/security_iam_id-based-policy-examples.html#security_iam_id-based-policy-examples-console","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-BatchGetTraceSummaryById"},"BatchGetTraces":{"name":"BatchGetTraces","service":"xray","conditionKeys":[],"resources":[],"description":"Grants permission to retrieve a list of traces specified by ID. Each trace is a collection of segment documents that originates from a single request. Use GetTraceSummaries to get a list of trace IDs","accessLevel":"List","resourceTypes":[],"operationUrl":"https://docs.aws.amazon.com/xray/latest/api/API_BatchGetTraces.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-BatchGetTraces"},"CancelTraceRetrieval":{"name":"CancelTraceRetrieval","service":"xray","conditionKeys":[],"resources":[],"description":"Grants permission to cancel an ongoing trace retrieval job initiated by StartTraceRetrieval using the provided RetrievalToken. A successful cancellation will return an HTTP 200 response","accessLevel":"Read","resourceTypes":[],"operationUrl":"API_CancelTraceRetrieval.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-CancelTraceRetrieval"},"CreateGroup":{"name":"CreateGroup","service":"xray","conditionKeys":["aws:RequestTag/${TagKey}","aws:TagKeys"],"resources":[{"name":"group"}],"description":"Grants permission to create a group resource with a name and a filter expression","accessLevel":"Write","resourceTypes":[{"name":"group","required":true}],"operationUrl":"https://docs.aws.amazon.com/xray/latest/api/API_CreateGroup.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-CreateGroup"},"CreateSamplingRule":{"name":"CreateSamplingRule","service":"xray","conditionKeys":["aws:RequestTag/${TagKey}","aws:TagKeys"],"resources":[{"name":"sampling-rule"}],"description":"Grants permission to create a rule to control sampling behavior for instrumented applications","accessLevel":"Write","resourceTypes":[{"name":"sampling-rule","required":true}],"operationUrl":"https://docs.aws.amazon.com/xray/latest/api/API_CreateSamplingRule.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-CreateSamplingRule"},"DeleteGroup":{"name":"DeleteGroup","service":"xray","conditionKeys":["aws:ResourceTag/${TagKey}"],"resources":[{"name":"group"}],"description":"Grants permission to delete a group resource","accessLevel":"Write","resourceTypes":[{"name":"group","required":true}],"operationUrl":"https://docs.aws.amazon.com/xray/latest/api/API_DeleteGroup.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-DeleteGroup"},"DeleteResourcePolicy":{"name":"DeleteResourcePolicy","service":"xray","conditionKeys":["xray:ResourcePolicyName"],"resources":[],"description":"Grants permission to delete resource policies","accessLevel":"Write","resourceTypes":[],"operationUrl":"https://docs.aws.amazon.com/xray/latest/api/API_DeleteResourcePolicy.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-DeleteResourcePolicy"},"DeleteSamplingRule":{"name":"DeleteSamplingRule","service":"xray","conditionKeys":["aws:ResourceTag/${TagKey}"],"resources":[{"name":"sampling-rule"}],"description":"Grants permission to delete a sampling rule","accessLevel":"Write","resourceTypes":[{"name":"sampling-rule","required":true}],"operationUrl":"https://docs.aws.amazon.com/xray/latest/api/API_DeleteSamplingRule.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-DeleteSamplingRule"},"GetDistinctTraceGraphs":{"name":"GetDistinctTraceGraphs","service":"xray","conditionKeys":[],"resources":[],"description":"Grants permission to retrieve distinct service graphs for one or more specific trace IDs","accessLevel":"Read","resourceTypes":[],"permissionOnly":true,"operationUrl":"https://docs.aws.amazon.com/xray/latest/devguide/security_iam_id-based-policy-examples.html#security_iam_id-based-policy-examples-console","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-GetDistinctTraceGraphs"},"GetEncryptionConfig":{"name":"GetEncryptionConfig","service":"xray","conditionKeys":[],"resources":[],"description":"Grants permission to retrieve the current encryption configuration for X-Ray data","accessLevel":"Read","resourceTypes":[],"operationUrl":"https://docs.aws.amazon.com/xray/latest/api/API_GetEncryptionConfig.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-GetEncryptionConfig"},"GetGroup":{"name":"GetGroup","service":"xray","conditionKeys":["aws:ResourceTag/${TagKey}"],"resources":[{"name":"group"}],"description":"Grants permission to retrieve group resource details","accessLevel":"Read","resourceTypes":[{"name":"group","required":true}],"operationUrl":"https://docs.aws.amazon.com/xray/latest/api/API_GetGroup.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-GetGroup"},"GetGroups":{"name":"GetGroups","service":"xray","conditionKeys":[],"resources":[],"description":"Grants permission to retrieve all active group details","accessLevel":"Read","resourceTypes":[],"operationUrl":"https://docs.aws.amazon.com/xray/latest/api/API_GetGroups.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-GetGroups"},"GetIndexingRules":{"name":"GetIndexingRules","service":"xray","conditionKeys":[],"resources":[],"description":"Grants permission to retrieve all indexing rules. Indexing rules are used to determine the server-side sampling rate for spans ingested through the CloudWatchLogs destination and indexed by X-Ray","accessLevel":"Read","resourceTypes":[],"operationUrl":"https://docs.aws.amazon.com/xray/latest/api/API_GetIndexingRules.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-GetIndexingRules"},"GetInsight":{"name":"GetInsight","service":"xray","conditionKeys":[],"resources":[],"description":"Grants permission to retrieve the details of a specific insight","accessLevel":"Read","resourceTypes":[],"operationUrl":"https://docs.aws.amazon.com/xray/latest/api/API_GetInsight.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-GetInsight"},"GetInsightEvents":{"name":"GetInsightEvents","service":"xray","conditionKeys":[],"resources":[],"description":"Grants permission to retrieve the events of a specific insight","accessLevel":"Read","resourceTypes":[],"operationUrl":"https://docs.aws.amazon.com/xray/latest/api/API_GetInsightEvents.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-GetInsightEvents"},"GetInsightImpactGraph":{"name":"GetInsightImpactGraph","service":"xray","conditionKeys":[],"resources":[],"description":"Grants permission to retrieve the part of the service graph which is impacted for a specific insight","accessLevel":"Read","resourceTypes":[],"operationUrl":"https://docs.aws.amazon.com/xray/latest/api/API_GetInsightImpactGraph.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-GetInsightImpactGraph"},"GetInsightSummaries":{"name":"GetInsightSummaries","service":"xray","conditionKeys":[],"resources":[],"description":"Grants permission to retrieve the summary of all insights for a group and time range with optional filters","accessLevel":"Read","resourceTypes":[],"operationUrl":"https://docs.aws.amazon.com/xray/latest/api/API_GetInsightSummaries.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-GetInsightSummaries"},"GetRetrievedTracesGraph":{"name":"GetRetrievedTracesGraph","service":"xray","conditionKeys":[],"resources":[],"description":"Grants permission to retrieve a service graph for traces based on the specified RetrievalToken from the Transaction Search CloudWatch log group","accessLevel":"Read","resourceTypes":[],"operationUrl":"API_GetRetrievedTracesGraph.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-GetRetrievedTracesGraph"},"GetSamplingRules":{"name":"GetSamplingRules","service":"xray","conditionKeys":[],"resources":[],"description":"Grants permission to retrieve all sampling rules","accessLevel":"Read","resourceTypes":[],"operationUrl":"https://docs.aws.amazon.com/xray/latest/api/API_GetSamplingRules.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-GetSamplingRules"},"GetSamplingStatisticSummaries":{"name":"GetSamplingStatisticSummaries","service":"xray","conditionKeys":[],"resources":[],"description":"Grants permission to retrieve information about recent sampling results for all sampling rules","accessLevel":"Read","resourceTypes":[],"operationUrl":"https://docs.aws.amazon.com/xray/latest/api/API_GetSamplingStatisticSummaries.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-GetSamplingStatisticSummaries"},"GetSamplingTargets":{"name":"GetSamplingTargets","service":"xray","conditionKeys":[],"resources":[],"description":"Grants permission to request a sampling quota for rules that the service is using to sample requests","accessLevel":"Read","resourceTypes":[],"operationUrl":"https://docs.aws.amazon.com/xray/latest/api/API_GetSamplingTargets.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-GetSamplingTargets"},"GetServiceGraph":{"name":"GetServiceGraph","service":"xray","conditionKeys":[],"resources":[],"description":"Grants permission to retrieve a document that describes services that process incoming requests, and downstream services that they call as a result","accessLevel":"Read","resourceTypes":[],"operationUrl":"https://docs.aws.amazon.com/xray/latest/api/API_GetServiceGraph.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-GetServiceGraph"},"GetTimeSeriesServiceStatistics":{"name":"GetTimeSeriesServiceStatistics","service":"xray","conditionKeys":[],"resources":[],"description":"Grants permission to retrieve an aggregation of service statistics defined by a specific time range bucketed into time intervals","accessLevel":"Read","resourceTypes":[],"operationUrl":"https://docs.aws.amazon.com/xray/latest/api/API_GetTimeSeriesServiceStatistics.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-GetTimeSeriesServiceStatistics"},"GetTraceGraph":{"name":"GetTraceGraph","service":"xray","conditionKeys":[],"resources":[],"description":"Grants permission to retrieve a service graph for one or more specific trace IDs","accessLevel":"Read","resourceTypes":[],"operationUrl":"https://docs.aws.amazon.com/xray/latest/api/API_GetTraceGraph.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-GetTraceGraph"},"GetTraceSegmentDestination":{"name":"GetTraceSegmentDestination","service":"xray","conditionKeys":[],"resources":[],"description":"Grants permission to retrieve the current destination of data sent to PutTraceSegments and OpenTelemetry API","accessLevel":"Read","resourceTypes":[],"operationUrl":"https://docs.aws.amazon.com/xray/latest/api/API_GetTraceSegmentDestination.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-GetTraceSegmentDestination"},"GetTraceSummaries":{"name":"GetTraceSummaries","service":"xray","conditionKeys":[],"resources":[],"description":"Grants permission to retrieve IDs and metadata for traces available for a specified time frame using an optional filter. To get the full traces, pass the trace IDs to BatchGetTraces","accessLevel":"Read","resourceTypes":[],"operationUrl":"https://docs.aws.amazon.com/xray/latest/api/API_GetTraceSummaries.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-GetTraceSummaries"},"Link":{"name":"Link","service":"xray","conditionKeys":[],"resources":[],"description":"Grants permission to share X-Ray resources with a monitoring account","accessLevel":"Write","resourceTypes":[],"permissionOnly":true,"operationUrl":"https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account-Setup.html#CloudWatch-Unified-Cross-Account-Setup-permissions","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-Link"},"ListResourcePolicies":{"name":"ListResourcePolicies","service":"xray","conditionKeys":[],"resources":[],"description":"Grants permission to list resource policies","accessLevel":"List","resourceTypes":[],"operationUrl":"https://docs.aws.amazon.com/xray/latest/api/API_ListResourcePolicies.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-ListResourcePolicies"},"ListRetrievedTraces":{"name":"ListRetrievedTraces","service":"xray","conditionKeys":[],"resources":[],"description":"Grants permission to retrieve a list of traces for a given RetrievalToken from the Transaction Search CloudWatch log group","accessLevel":"List","resourceTypes":[],"operationUrl":"API_ListRetrievedTraces.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-ListRetrievedTraces"},"ListTagsForResource":{"name":"ListTagsForResource","service":"xray","conditionKeys":[],"resources":[{"name":"group"},{"name":"sampling-rule"}],"description":"Grants permission to list tags for an X-Ray resource","accessLevel":"List","resourceTypes":[{"name":"group","required":false},{"name":"sampling-rule","required":false}],"operationUrl":"https://docs.aws.amazon.com/xray/latest/api/API_ListTagsForResource.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-ListTagsForResource"},"PutEncryptionConfig":{"name":"PutEncryptionConfig","service":"xray","conditionKeys":[],"resources":[],"description":"Grants permission to update the encryption configuration for X-Ray data","accessLevel":"Permissions management","resourceTypes":[],"operationUrl":"https://docs.aws.amazon.com/xray/latest/api/API_PutEncryptionConfig.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-PutEncryptionConfig"},"PutResourcePolicy":{"name":"PutResourcePolicy","service":"xray","conditionKeys":["xray:ResourcePolicyName"],"resources":[],"description":"Grants permission to create or update resource policies","accessLevel":"Write","resourceTypes":[],"operationUrl":"https://docs.aws.amazon.com/xray/latest/api/API_PutResourcePolicy.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-PutResourcePolicy"},"PutSpans":{"name":"PutSpans","service":"xray","conditionKeys":["logs:LogGeneratingResourceArns"],"resources":[],"description":"Grants permission to upload OpenTelemetry spans to AWS X-Ray","accessLevel":"Write","resourceTypes":[],"operationUrl":"https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-OTLPEndpoint.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-PutSpans"},"PutSpansForIndexing":{"name":"PutSpansForIndexing","service":"xray","conditionKeys":[],"resources":[],"description":"Grants permission to upload spans to AWS X-Ray to be indexed","accessLevel":"Write","resourceTypes":[],"permissionOnly":true,"operationUrl":"https://docs.aws.amazon.com/xray/latest/devguide/security_iam_id-based-policy-examples.html#security_iam_id-based-policy-examples-console","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-PutSpansForIndexing"},"PutTelemetryRecords":{"name":"PutTelemetryRecords","service":"xray","conditionKeys":[],"resources":[],"description":"Grants permission to send AWS X-Ray daemon telemetry to the service","accessLevel":"Write","resourceTypes":[],"operationUrl":"https://docs.aws.amazon.com/xray/latest/api/API_PutTelemetryRecords.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-PutTelemetryRecords"},"PutTraceSegments":{"name":"PutTraceSegments","service":"xray","conditionKeys":["logs:LogGeneratingResourceArns"],"resources":[],"description":"Grants permission to upload segment documents to AWS X-Ray. The X-Ray SDK generates segment documents and sends them to the X-Ray daemon, which uploads them in batches","accessLevel":"Write","resourceTypes":[],"operationUrl":"https://docs.aws.amazon.com/xray/latest/api/API_PutTraceSegments.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-PutTraceSegments"},"StartTraceRetrieval":{"name":"StartTraceRetrieval","service":"xray","conditionKeys":[],"resources":[],"description":"Grants permission to initiate a trace retrieval process using the specified time range and for the given trace IDs on the Transaction Search CloudWatch log group","accessLevel":"Read","resourceTypes":[],"operationUrl":"API_StartTraceRetrieval","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-StartTraceRetrieval"},"TagResource":{"name":"TagResource","service":"xray","conditionKeys":["aws:RequestTag/${TagKey}","aws:TagKeys"],"resources":[{"name":"group"},{"name":"sampling-rule"}],"description":"Grants permission to add tags to an X-Ray resource","accessLevel":"Tagging","resourceTypes":[{"name":"group","required":false},{"name":"sampling-rule","required":false}],"operationUrl":"https://docs.aws.amazon.com/xray/latest/api/API_TagResource.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-TagResource"},"UntagResource":{"name":"UntagResource","service":"xray","conditionKeys":["aws:TagKeys"],"resources":[{"name":"group"},{"name":"sampling-rule"}],"description":"Grants permission to remove tags from an X-Ray resource","accessLevel":"Tagging","resourceTypes":[{"name":"group","required":false},{"name":"sampling-rule","required":false}],"operationUrl":"https://docs.aws.amazon.com/xray/latest/api/API_UntagResource.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-UntagResource"},"UpdateGroup":{"name":"UpdateGroup","service":"xray","conditionKeys":["aws:ResourceTag/${TagKey}"],"resources":[{"name":"group"}],"description":"Grants permission to update a group resource","accessLevel":"Write","resourceTypes":[{"name":"group","required":true}],"operationUrl":"https://docs.aws.amazon.com/xray/latest/api/API_UpdateGroup.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-UpdateGroup"},"UpdateIndexingRule":{"name":"UpdateIndexingRule","service":"xray","conditionKeys":[],"resources":[],"description":"Grants permission to modify an indexing rule's configuration","accessLevel":"Write","resourceTypes":[],"operationUrl":"https://docs.aws.amazon.com/xray/latest/api/API_UpdateIndexingRule.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-UpdateIndexingRule"},"UpdateSamplingRule":{"name":"UpdateSamplingRule","service":"xray","conditionKeys":["aws:ResourceTag/${TagKey}"],"resources":[{"name":"sampling-rule"}],"description":"Grants permission to modify a sampling rule's configuration","accessLevel":"Write","resourceTypes":[{"name":"sampling-rule","required":true}],"operationUrl":"https://docs.aws.amazon.com/xray/latest/api/API_UpdateSamplingRule.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-UpdateSamplingRule"},"UpdateTraceSegmentDestination":{"name":"UpdateTraceSegmentDestination","service":"xray","conditionKeys":["xray:TraceSegmentDestination"],"resources":[],"description":"Grants permission to modify the destination of data sent to PutTraceSegments and OpenTelemetry API","accessLevel":"Write","resourceTypes":[],"operationUrl":"https://docs.aws.amazon.com/xray/latest/api/API_UpdateTraceSegmentDestination.html","iamUrl":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html#awsx-ray-UpdateTraceSegmentDestination"}},"resources":[{"name":"group","arnFormats":["arn:${Partition}:xray:${Region}:${Account}:group/${GroupName}/${Id}"],"conditionKeys":["aws:ResourceTag/${TagKey}"]},{"name":"sampling-rule","arnFormats":["arn:${Partition}:xray:${Region}:${Account}:sampling-rule/${SamplingRuleName}"],"conditionKeys":["aws:ResourceTag/${TagKey}"]}],"conditionKeys":{"aws:RequestTag/${TagKey}":{"types":["String"],"description":"Filters access by the tags that are passed in the request"},"aws:ResourceTag/${TagKey}":{"types":["String"],"description":"Filters access by the tags associated with the resource"},"aws:TagKeys":{"types":["ArrayOfString"],"description":"Filters access by the tag keys that are passed in the request"},"logs:LogGeneratingResourceArns":{"types":["ArrayOfARN"],"description":"Filters access by LogGeneratingResourceArn in the request"},"xray:ResourcePolicyName":{"types":["String"],"description":"Filters access by PolicyName in the request"},"xray:TraceSegmentDestination":{"types":["String"],"description":"Filters access by TraceSegmentDestination type in the request"}},"url":"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html"}
package/src/extension.js CHANGED
@@ -8,12 +8,7 @@ export function activate(context) {
8
8
  debug: { module: serverModule, transport: TransportKind.stdio },
9
9
  };
10
10
  client = new LanguageClient('aws-iam-language-server', 'AWS IAM Language Server', serverOptions, {
11
- documentSelector: [
12
- { scheme: 'file', language: 'json' },
13
- { scheme: 'file', language: 'yaml' },
14
- { scheme: 'file', language: 'terraform' },
15
- { scheme: 'file', language: 'opentofu' },
16
- ],
11
+ documentSelector: [{ language: 'json' }, { language: 'yaml' }, { language: 'terraform' }, { language: 'opentofu' }],
17
12
  });
18
13
  client.start();
19
14
  }
@@ -1,4 +1,4 @@
1
1
  import type { CompletionList } from 'vscode-languageserver';
2
2
  import type { ActionValueLocation } from '../../lib/iam-policy/location.ts';
3
- import type { CompletionContext } from './index.ts';
4
- export declare function completeActionValue(location: ActionValueLocation, _context: CompletionContext): CompletionList;
3
+ import { type CompletionContext } from './index.ts';
4
+ export declare function completeActionValue(location: ActionValueLocation, context: CompletionContext): CompletionList;
@@ -1,29 +1,46 @@
1
1
  import { CompletionItemKind, MarkupKind } from 'vscode-languageserver';
2
2
  import { ServiceReference } from "../../lib/iam-policy/reference/services.js";
3
- export function completeActionValue(location, _context) {
4
- const potentialLabels = ServiceReference.getAllActions();
3
+ import { partialRange } from "./index.js";
4
+ export function completeActionValue(location, context) {
5
+ const range = partialRange(context.position, location.partial.length);
5
6
  const items = [];
6
- for (const label of potentialLabels) {
7
- if (location.partial && !label.toLowerCase().startsWith(location.partial.toLowerCase()))
8
- continue;
9
- const item = {
10
- label,
11
- kind: CompletionItemKind.Enum,
12
- };
13
- const [service, actionName] = label.split(':');
14
- if (service && actionName) {
15
- const action = ServiceReference.getAction(service, actionName);
16
- if (action) {
7
+ const parts = location.partial.split(':');
8
+ if (parts.length === 1) {
9
+ // suggest services
10
+ const potentialServices = ServiceReference.getAllServices();
11
+ for (const service of potentialServices) {
12
+ if (!service.toLowerCase().startsWith(location.partial.toLowerCase()))
13
+ continue;
14
+ const item = {
15
+ label: service,
16
+ kind: CompletionItemKind.Enum,
17
+ textEdit: { range, newText: service },
18
+ };
19
+ items.push(item);
20
+ }
21
+ }
22
+ else if (parts.length === 2) {
23
+ // suggest actions
24
+ const serviceName = parts[0];
25
+ const potentialActions = ServiceReference.getActionsForService(serviceName);
26
+ for (const action of potentialActions) {
27
+ const label = `${action.service}:${action.name}`;
28
+ if (!label.toLowerCase().startsWith(location.partial.toLowerCase()))
29
+ continue;
30
+ const item = {
31
+ label,
32
+ kind: CompletionItemKind.Enum,
33
+ textEdit: { range, newText: label },
34
+ };
35
+ if (action.description) {
17
36
  item.detail = action.description;
18
- if (action.description) {
19
- item.documentation = {
20
- kind: MarkupKind.Markdown,
21
- value: formatActionDocumentation(action),
22
- };
23
- }
37
+ item.documentation = {
38
+ kind: MarkupKind.Markdown,
39
+ value: formatActionDocumentation(action),
40
+ };
24
41
  }
42
+ items.push(item);
25
43
  }
26
- items.push(item);
27
44
  }
28
45
  return { items, isIncomplete: false };
29
46
  }
@@ -1,4 +1,4 @@
1
1
  import type { CompletionList } from 'vscode-languageserver';
2
2
  import type { ConditionBlockLocation } from '../../lib/iam-policy/location.ts';
3
- import type { CompletionContext } from './index.ts';
3
+ import { type CompletionContext } from './index.ts';
4
4
  export declare function completeConditionBlock(location: ConditionBlockLocation, context: CompletionContext): CompletionList;
@@ -1,4 +1,5 @@
1
1
  import { CompletionItemKind, MarkupKind } from 'vscode-languageserver';
2
+ import { partialRange } from "./index.js";
2
3
  const conditionBlockAttributes = {
3
4
  test: {
4
5
  description: 'The condition operator to evaluate (e.g., `StringEquals`, `ArnLike`, `IpAddress`).',
@@ -12,6 +13,7 @@ const conditionBlockAttributes = {
12
13
  };
13
14
  export function completeConditionBlock(location, context) {
14
15
  const siblingKeys = context.handler.getSiblingKeys(context.uri, context.position);
16
+ const range = partialRange(context.position, location.partial.length);
15
17
  const items = [];
16
18
  for (const [name, attr] of Object.entries(conditionBlockAttributes)) {
17
19
  if (siblingKeys.includes(name))
@@ -21,6 +23,7 @@ export function completeConditionBlock(location, context) {
21
23
  items.push({
22
24
  label: name,
23
25
  kind: CompletionItemKind.Field,
26
+ textEdit: { range, newText: name },
24
27
  documentation: {
25
28
  kind: MarkupKind.Markdown,
26
29
  value: attr.description,
@@ -1,4 +1,4 @@
1
1
  import type { CompletionList } from 'vscode-languageserver';
2
2
  import type { ConditionKeyLocation } from '../../lib/iam-policy/location.ts';
3
- import type { CompletionContext } from './index.ts';
3
+ import { type CompletionContext } from './index.ts';
4
4
  export declare function completeConditionKey(location: ConditionKeyLocation, context: CompletionContext): CompletionList;
@@ -1,9 +1,11 @@
1
1
  import { CompletionItemKind, MarkupKind } from 'vscode-languageserver';
2
2
  import { ServiceReference } from "../../lib/iam-policy/reference/services.js";
3
3
  import { expandActionPattern } from "../../lib/iam-policy/wildcard.js";
4
+ import { partialRange } from "./index.js";
4
5
  export function completeConditionKey(location, context) {
5
6
  const statement = context.handler.getStatementContext(context.uri, context.position);
6
7
  const existingKeys = location.operator ? Object.keys(statement?.Condition?.[location.operator] ?? {}) : [];
8
+ const range = partialRange(context.position, location.partial.length);
7
9
  const items = [];
8
10
  const seen = new Set();
9
11
  // Build a lookup for global keys so we can enrich service-specific keys with descriptions
@@ -34,6 +36,7 @@ export function completeConditionKey(location, context) {
34
36
  items.push({
35
37
  label: key.name,
36
38
  kind: CompletionItemKind.Property,
39
+ textEdit: { range, newText: key.name },
37
40
  documentation: {
38
41
  kind: MarkupKind.Markdown,
39
42
  value: formatDocumentation(key.types, global, conditionKeyData),
@@ -53,6 +56,7 @@ export function completeConditionKey(location, context) {
53
56
  items.push({
54
57
  label: global.name,
55
58
  kind: CompletionItemKind.Property,
59
+ textEdit: { range, newText: global.name },
56
60
  documentation: {
57
61
  kind: MarkupKind.Markdown,
58
62
  value: formatDocumentation([], global),
@@ -1,4 +1,4 @@
1
1
  import type { CompletionList } from 'vscode-languageserver';
2
2
  import type { ConditionOperatorLocation } from '../../lib/iam-policy/location.ts';
3
- import type { CompletionContext } from './index.ts';
3
+ import { type CompletionContext } from './index.ts';
4
4
  export declare function completeConditionOperator(location: ConditionOperatorLocation, context: CompletionContext): CompletionList;
@@ -1,8 +1,10 @@
1
1
  import { CompletionItemKind, MarkupKind } from 'vscode-languageserver';
2
2
  import { conditionOperators } from "../../lib/iam-policy/condition-operators.js";
3
+ import { partialRange } from "./index.js";
3
4
  export function completeConditionOperator(location, context) {
4
5
  const statement = context.handler.getStatementContext(context.uri, context.position);
5
6
  const existingOperators = Object.keys(statement?.Condition ?? {});
7
+ const range = partialRange(context.position, location.partial.length);
6
8
  const items = [];
7
9
  for (const [name, operator] of Object.entries(conditionOperators)) {
8
10
  if (existingOperators.includes(name))
@@ -12,6 +14,7 @@ export function completeConditionOperator(location, context) {
12
14
  items.push({
13
15
  label: name,
14
16
  kind: CompletionItemKind.Operator,
17
+ textEdit: { range, newText: name },
15
18
  documentation: {
16
19
  kind: MarkupKind.Markdown,
17
20
  value: operator.description,
@@ -1,4 +1,4 @@
1
1
  import type { CompletionList } from 'vscode-languageserver';
2
2
  import type { EffectValueLocation } from '../../lib/iam-policy/location.ts';
3
- import type { CompletionContext } from './index.ts';
4
- export declare function completeEffectValue(location: EffectValueLocation, _context: CompletionContext): CompletionList;
3
+ import { type CompletionContext } from './index.ts';
4
+ export declare function completeEffectValue(location: EffectValueLocation, context: CompletionContext): CompletionList;
@@ -1,6 +1,8 @@
1
1
  import { CompletionItemKind } from 'vscode-languageserver';
2
- export function completeEffectValue(location, _context) {
2
+ import { partialRange } from "./index.js";
3
+ export function completeEffectValue(location, context) {
3
4
  const potentialLabels = ['Allow', 'Deny'];
5
+ const range = partialRange(context.position, location.partial.length);
4
6
  const items = [];
5
7
  for (const label of potentialLabels) {
6
8
  if (location.partial && !label.toLowerCase().startsWith(location.partial.toLowerCase()))
@@ -8,6 +10,7 @@ export function completeEffectValue(location, _context) {
8
10
  items.push({
9
11
  label,
10
12
  kind: CompletionItemKind.Enum,
13
+ textEdit: { range, newText: label },
11
14
  });
12
15
  }
13
16
  return { items, isIncomplete: false };
@@ -1,4 +1,4 @@
1
- import type { CompletionList, CompletionParams } from 'vscode-languageserver';
1
+ import type { CompletionList, CompletionParams, Connection } from 'vscode-languageserver';
2
2
  import type { TextDocuments } from 'vscode-languageserver/node.js';
3
3
  import type { TextDocument } from 'vscode-languageserver-textdocument';
4
4
  import type { TreeBase } from '../../lib/treesitter/base.ts';
@@ -11,4 +11,17 @@ export type CompletionContext = {
11
11
  column: number;
12
12
  };
13
13
  };
14
- export declare function handleCompletionRequest(params: CompletionParams, _documents: TextDocuments<TextDocument>, treeManager: TreeManager): Promise<CompletionList>;
14
+ export declare function partialRange(position: {
15
+ line: number;
16
+ column: number;
17
+ }, partialLength: number): {
18
+ start: {
19
+ line: number;
20
+ character: number;
21
+ };
22
+ end: {
23
+ line: number;
24
+ character: number;
25
+ };
26
+ };
27
+ export declare function handleCompletionRequest(params: CompletionParams, _documents: TextDocuments<TextDocument>, treeManager: TreeManager, connection: Connection): Promise<CompletionList>;
@@ -15,7 +15,13 @@ import { completeResourceValue } from "./resource-value.js";
15
15
  import { completeStatementBlock } from "./statement-block.js";
16
16
  import { completeStatementKey } from "./statement-key.js";
17
17
  const emptyResult = { items: [], isIncomplete: false };
18
- export async function handleCompletionRequest(params, _documents, treeManager) {
18
+ export function partialRange(position, partialLength) {
19
+ return {
20
+ start: { line: position.line, character: position.column - partialLength },
21
+ end: { line: position.line, character: position.column },
22
+ };
23
+ }
24
+ export async function handleCompletionRequest(params, _documents, treeManager, connection) {
19
25
  const handler = treeManager.getLanguageHandler(params.textDocument.uri);
20
26
  if (!handler)
21
27
  return emptyResult;
@@ -24,12 +30,19 @@ export async function handleCompletionRequest(params, _documents, treeManager) {
24
30
  if (!cursorContext)
25
31
  return emptyResult;
26
32
  const location = resolvePolicyLocation(cursorContext);
33
+ connection.console.debug(`Completion debug: ${JSON.stringify({
34
+ uri: params.textDocument.uri,
35
+ cursorContext,
36
+ location,
37
+ position: params.position,
38
+ })}`);
27
39
  const result = handleLocationCompletion(location, {
28
40
  handler,
29
41
  uri: params.textDocument.uri,
30
42
  position,
31
43
  });
32
44
  result.items = result.items.map(toSnippet);
45
+ connection.console.debug(`Found ${result.items.length} completion items for ${params.textDocument.uri} at line ${position.line}, column ${position.column}`);
33
46
  return result;
34
47
  }
35
48
  function handleLocationCompletion(location, context) {
@@ -78,7 +91,7 @@ function handleLocationCompletion(location, context) {
78
91
  return emptyResult;
79
92
  }
80
93
  function toSnippet(item) {
81
- const text = item.insertText ?? item.label;
94
+ const text = item.textEdit && 'range' in item.textEdit ? item.textEdit.newText : (item.insertText ?? item.label);
82
95
  const snippetPlaceholderPattern = /\$\{([^}]+)\}/g;
83
96
  if (!snippetPlaceholderPattern.test(text))
84
97
  return item;
@@ -90,7 +103,12 @@ function toSnippet(item) {
90
103
  }
91
104
  return `\${${seen.get(name)}:${name}}`;
92
105
  });
93
- item.insertText = snippetText;
106
+ if (item.textEdit && 'range' in item.textEdit) {
107
+ item.textEdit.newText = snippetText;
108
+ }
109
+ else {
110
+ item.insertText = snippetText;
111
+ }
94
112
  item.insertTextFormat = InsertTextFormat.Snippet;
95
113
  return item;
96
114
  }
@@ -1,4 +1,4 @@
1
1
  import type { CompletionList } from 'vscode-languageserver';
2
2
  import type { PrincipalBlockIdentifierLocation } from '../../lib/iam-policy/location.ts';
3
3
  import type { CompletionContext } from './index.ts';
4
- export declare function completePrincipalBlockIdentifier(location: PrincipalBlockIdentifierLocation, _context: CompletionContext): CompletionList;
4
+ export declare function completePrincipalBlockIdentifier(location: PrincipalBlockIdentifierLocation, context: CompletionContext): CompletionList;
@@ -1,4 +1,4 @@
1
1
  import { completePrincipalIdentifier } from "./principal-identifier-completions.js";
2
- export function completePrincipalBlockIdentifier(location, _context) {
3
- return completePrincipalIdentifier(location.principalType, location.partial);
2
+ export function completePrincipalBlockIdentifier(location, context) {
3
+ return completePrincipalIdentifier(location.principalType, location.partial, context.position);
4
4
  }
@@ -1,4 +1,4 @@
1
1
  import type { CompletionList } from 'vscode-languageserver';
2
2
  import type { PrincipalBlockTypeLocation } from '../../lib/iam-policy/location.ts';
3
- import type { CompletionContext } from './index.ts';
4
- export declare function completePrincipalBlockType(location: PrincipalBlockTypeLocation, _context: CompletionContext): CompletionList;
3
+ import { type CompletionContext } from './index.ts';
4
+ export declare function completePrincipalBlockType(location: PrincipalBlockTypeLocation, context: CompletionContext): CompletionList;
@@ -1,6 +1,8 @@
1
1
  import { CompletionItemKind } from 'vscode-languageserver';
2
2
  import { principalTypes } from "../../lib/iam-policy/principals.js";
3
- export function completePrincipalBlockType(location, _context) {
3
+ import { partialRange } from "./index.js";
4
+ export function completePrincipalBlockType(location, context) {
5
+ const range = partialRange(context.position, location.partial.length);
4
6
  const items = [];
5
7
  for (const [_id, principalType] of Object.entries(Object.assign({}, principalTypes, {
6
8
  '*': {
@@ -14,6 +16,7 @@ export function completePrincipalBlockType(location, _context) {
14
16
  items.push({
15
17
  label: principalType.value,
16
18
  kind: CompletionItemKind.Enum,
19
+ textEdit: { range, newText: principalType.value },
17
20
  documentation: {
18
21
  kind: 'markdown',
19
22
  value: principalType.description,
@@ -1,4 +1,4 @@
1
1
  import type { CompletionList } from 'vscode-languageserver';
2
2
  import type { PrincipalBlockLocation } from '../../lib/iam-policy/location.ts';
3
- import type { CompletionContext } from './index.ts';
3
+ import { type CompletionContext } from './index.ts';
4
4
  export declare function completePrincipalBlock(location: PrincipalBlockLocation, context: CompletionContext): CompletionList;
@@ -1,4 +1,5 @@
1
1
  import { CompletionItemKind, MarkupKind } from 'vscode-languageserver';
2
+ import { partialRange } from "./index.js";
2
3
  const principalBlockAttributes = {
3
4
  type: {
4
5
  description: 'The type of principal. Valid values: `*`, `AWS`, `Service`, `Federated`, `CanonicalUser`.',
@@ -9,6 +10,7 @@ const principalBlockAttributes = {
9
10
  };
10
11
  export function completePrincipalBlock(location, context) {
11
12
  const siblingKeys = context.handler.getSiblingKeys(context.uri, context.position);
13
+ const range = partialRange(context.position, location.partial.length);
12
14
  const items = [];
13
15
  for (const [name, attr] of Object.entries(principalBlockAttributes)) {
14
16
  if (siblingKeys.includes(name))
@@ -18,6 +20,7 @@ export function completePrincipalBlock(location, context) {
18
20
  items.push({
19
21
  label: name,
20
22
  kind: CompletionItemKind.Field,
23
+ textEdit: { range, newText: name },
21
24
  documentation: {
22
25
  kind: MarkupKind.Markdown,
23
26
  value: attr.description,
@@ -1,2 +1,5 @@
1
1
  import type { CompletionList } from 'vscode-languageserver';
2
- export declare function completePrincipalIdentifier(principalType: string | null, partial: string): CompletionList;
2
+ export declare function completePrincipalIdentifier(principalType: string | null, partial: string, position: {
3
+ line: number;
4
+ column: number;
5
+ }): CompletionList;
@@ -1,6 +1,7 @@
1
1
  import { CompletionItemKind } from 'vscode-languageserver';
2
2
  import { partitions } from "../../lib/iam-policy/partitions.js";
3
3
  import { principalTypes } from "../../lib/iam-policy/principals.js";
4
+ import { partialRange } from "./index.js";
4
5
  const PARTITION_PLACEHOLDER = `\${Partition}`;
5
6
  const REGION_PLACEHOLDER = `\${Region}`;
6
7
  const ACCOUNT_PLACEHOLDER = `\${Account}`;
@@ -24,27 +25,28 @@ function getPatternsForType(principalType) {
24
25
  return null;
25
26
  }
26
27
  }
27
- export function completePrincipalIdentifier(principalType, partial) {
28
+ export function completePrincipalIdentifier(principalType, partial, position) {
28
29
  if (!principalType)
29
30
  return { items: [], isIncomplete: false };
30
31
  const config = getPatternsForType(principalType);
31
32
  if (!config)
32
33
  return { items: [], isIncomplete: false };
34
+ const range = partialRange(position, partial.length);
33
35
  const items = [];
34
36
  if (!partial) {
35
37
  for (const pattern of [...config.nonArn, ...config.arn]) {
36
- items.push({ label: pattern, kind: CompletionItemKind.Value });
38
+ items.push({ label: pattern, kind: CompletionItemKind.Value, textEdit: { range, newText: pattern } });
37
39
  }
38
40
  return { items, isIncomplete: false };
39
41
  }
40
42
  const parts = partial.split(':');
41
43
  if (parts.length === 1) {
42
44
  if (config.arn.length > 0 && 'arn'.startsWith(partial.toLowerCase())) {
43
- items.push({ label: 'arn', kind: CompletionItemKind.Constant });
45
+ items.push({ label: 'arn', kind: CompletionItemKind.Constant, textEdit: { range, newText: 'arn' } });
44
46
  }
45
47
  for (const pattern of config.nonArn) {
46
48
  if (pattern.toLowerCase().startsWith(partial.toLowerCase())) {
47
- items.push({ label: pattern, kind: CompletionItemKind.Value });
49
+ items.push({ label: pattern, kind: CompletionItemKind.Value, textEdit: { range, newText: pattern } });
48
50
  }
49
51
  }
50
52
  }
@@ -97,9 +99,11 @@ export function completePrincipalIdentifier(principalType, partial) {
97
99
  }
98
100
  }
99
101
  else if (parts.length === 5) {
102
+ const label = `${partial}:`;
100
103
  items.push({
101
- label: `${partial}:`,
104
+ label,
102
105
  kind: CompletionItemKind.Enum,
106
+ textEdit: { range, newText: label },
103
107
  documentation: { kind: 'markdown', value: 'AWS Account ID' },
104
108
  });
105
109
  }
@@ -124,7 +128,7 @@ export function completePrincipalIdentifier(principalType, partial) {
124
128
  .replace(ACCOUNT_PLACEHOLDER, account);
125
129
  if (!label.toLowerCase().startsWith(partial.toLowerCase()))
126
130
  continue;
127
- items.push({ label, kind: CompletionItemKind.Value });
131
+ items.push({ label, kind: CompletionItemKind.Value, textEdit: { range, newText: label } });
128
132
  }
129
133
  }
130
134
  return { items, isIncomplete: false };
@@ -1,4 +1,4 @@
1
1
  import type { CompletionList } from 'vscode-languageserver';
2
2
  import type { PrincipalTypeLocation } from '../../lib/iam-policy/location.ts';
3
- import type { CompletionContext } from './index.ts';
3
+ import { type CompletionContext } from './index.ts';
4
4
  export declare function completePrincipalType(location: PrincipalTypeLocation, context: CompletionContext): CompletionList;
@@ -1,9 +1,11 @@
1
1
  import { CompletionItemKind } from 'vscode-languageserver';
2
2
  import { principalTypes } from "../../lib/iam-policy/principals.js";
3
+ import { partialRange } from "./index.js";
3
4
  export function completePrincipalType(location, context) {
4
5
  const statement = context.handler.getStatementContext(context.uri, context.position);
5
6
  const principal = statement?.Principal ?? statement?.NotPrincipal;
6
7
  const existingTypes = principal && typeof principal === 'object' ? Object.keys(principal) : [];
8
+ const range = partialRange(context.position, location.partial.length);
7
9
  const items = [];
8
10
  for (const [_id, principalType] of Object.entries(principalTypes)) {
9
11
  if (existingTypes.includes(principalType.value))
@@ -13,6 +15,7 @@ export function completePrincipalType(location, context) {
13
15
  items.push({
14
16
  label: principalType.value,
15
17
  kind: CompletionItemKind.Enum,
18
+ textEdit: { range, newText: principalType.value },
16
19
  documentation: {
17
20
  kind: 'markdown',
18
21
  value: principalType.description,
@@ -1,4 +1,4 @@
1
1
  import type { CompletionList } from 'vscode-languageserver';
2
2
  import type { PrincipalTypedValueLocation } from '../../lib/iam-policy/location.ts';
3
3
  import type { CompletionContext } from './index.ts';
4
- export declare function completePrincipalTypedValue(location: PrincipalTypedValueLocation, _context: CompletionContext): CompletionList;
4
+ export declare function completePrincipalTypedValue(location: PrincipalTypedValueLocation, context: CompletionContext): CompletionList;
@@ -1,4 +1,4 @@
1
1
  import { completePrincipalIdentifier } from "./principal-identifier-completions.js";
2
- export function completePrincipalTypedValue(location, _context) {
3
- return completePrincipalIdentifier(location.principalType, location.partial);
2
+ export function completePrincipalTypedValue(location, context) {
3
+ return completePrincipalIdentifier(location.principalType, location.partial, context.position);
4
4
  }
@@ -1,4 +1,4 @@
1
1
  import type { CompletionList } from 'vscode-languageserver';
2
2
  import type { PrincipalValueLocation } from '../../lib/iam-policy/location.ts';
3
- import type { CompletionContext } from './index.ts';
4
- export declare function completePrincipalValue(location: PrincipalValueLocation, _context: CompletionContext): CompletionList;
3
+ import { type CompletionContext } from './index.ts';
4
+ export declare function completePrincipalValue(location: PrincipalValueLocation, context: CompletionContext): CompletionList;
@@ -1,6 +1,8 @@
1
1
  import { CompletionItemKind } from 'vscode-languageserver';
2
- export function completePrincipalValue(location, _context) {
2
+ import { partialRange } from "./index.js";
3
+ export function completePrincipalValue(location, context) {
3
4
  const potentialLabels = ['*'];
5
+ const range = partialRange(context.position, location.partial.length);
4
6
  const items = [];
5
7
  for (const label of potentialLabels) {
6
8
  if (location.partial && !label.toLowerCase().startsWith(location.partial.toLowerCase()))
@@ -8,6 +10,7 @@ export function completePrincipalValue(location, _context) {
8
10
  items.push({
9
11
  label,
10
12
  kind: CompletionItemKind.Enum,
13
+ textEdit: { range, newText: label },
11
14
  documentation: {
12
15
  kind: 'markdown',
13
16
  value: 'Public Unauthenticated Access',