aws-iam-language-server 0.0.7 → 0.0.9
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.
- package/package.json +1 -1
- package/src/data/servicereference/actions.json +1 -1
- package/src/data/servicereference/services/a2c.json +1 -1
- package/src/data/servicereference/services/a4b.json +1 -1
- package/src/data/servicereference/services/access-analyzer.json +1 -1
- package/src/data/servicereference/services/account.json +1 -1
- package/src/data/servicereference/services/acm-pca.json +1 -1
- package/src/data/servicereference/services/acm.json +1 -1
- package/src/data/servicereference/services/aco-automation.json +1 -1
- package/src/data/servicereference/services/action-recommendations.json +1 -1
- package/src/data/servicereference/services/activate.json +1 -1
- package/src/data/servicereference/services/aidevops.json +1 -1
- package/src/data/servicereference/services/aiops.json +1 -1
- package/src/data/servicereference/services/airflow-serverless.json +1 -1
- package/src/data/servicereference/services/airflow.json +1 -1
- package/src/data/servicereference/services/amplify.json +1 -1
- package/src/data/servicereference/services/amplifybackend.json +1 -1
- package/src/data/servicereference/services/amplifyuibuilder.json +1 -1
- package/src/data/servicereference/services/aoss.json +1 -1
- package/src/data/servicereference/services/apigateway.json +1 -1
- package/src/data/servicereference/services/app-integrations.json +1 -1
- package/src/data/servicereference/services/appconfig.json +1 -1
- package/src/data/servicereference/services/appfabric.json +1 -1
- package/src/data/servicereference/services/appflow.json +1 -1
- package/src/data/servicereference/services/application-autoscaling.json +1 -1
- package/src/data/servicereference/services/application-signals.json +1 -1
- package/src/data/servicereference/services/application-transformation.json +1 -1
- package/src/data/servicereference/services/applicationinsights.json +1 -1
- package/src/data/servicereference/services/appmesh-preview.json +1 -1
- package/src/data/servicereference/services/appmesh.json +1 -1
- package/src/data/servicereference/services/apprunner.json +1 -1
- package/src/data/servicereference/services/appstream.json +1 -1
- package/src/data/servicereference/services/appstudio.json +1 -1
- package/src/data/servicereference/services/appsync.json +1 -1
- package/src/data/servicereference/services/apptest.json +1 -1
- package/src/data/servicereference/services/aps.json +1 -1
- package/src/data/servicereference/services/arc-region-switch.json +1 -1
- package/src/data/servicereference/services/arc-zonal-shift.json +1 -1
- package/src/data/servicereference/services/arsenal.json +1 -1
- package/src/data/servicereference/services/artifact.json +1 -1
- package/src/data/servicereference/services/athena.json +1 -1
- package/src/data/servicereference/services/auditmanager.json +1 -1
- package/src/data/servicereference/services/autoscaling-plans.json +1 -1
- package/src/data/servicereference/services/autoscaling.json +1 -1
- package/src/data/servicereference/services/aws-marketplace-management.json +1 -1
- package/src/data/servicereference/services/aws-marketplace.json +1 -1
- package/src/data/servicereference/services/aws-mcp.json +1 -1
- package/src/data/servicereference/services/aws-portal.json +1 -1
- package/src/data/servicereference/services/awsconnector.json +1 -1
- package/src/data/servicereference/services/b2bi.json +1 -1
- package/src/data/servicereference/services/backup-gateway.json +1 -1
- package/src/data/servicereference/services/backup-search.json +1 -1
- package/src/data/servicereference/services/backup-storage.json +1 -1
- package/src/data/servicereference/services/backup.json +1 -1
- package/src/data/servicereference/services/batch.json +1 -1
- package/src/data/servicereference/services/bcm-dashboards.json +1 -1
- package/src/data/servicereference/services/bcm-data-exports.json +1 -1
- package/src/data/servicereference/services/bcm-pricing-calculator.json +1 -1
- package/src/data/servicereference/services/bcm-recommended-actions.json +1 -1
- package/src/data/servicereference/services/bedrock-agentcore.json +1 -1
- package/src/data/servicereference/services/bedrock-mantle.json +1 -1
- package/src/data/servicereference/services/bedrock.json +1 -1
- package/src/data/servicereference/services/billing.json +1 -1
- package/src/data/servicereference/services/billingconductor.json +1 -1
- package/src/data/servicereference/services/braket.json +1 -1
- package/src/data/servicereference/services/budgets.json +1 -1
- package/src/data/servicereference/services/bugbust.json +1 -1
- package/src/data/servicereference/services/cases.json +1 -1
- package/src/data/servicereference/services/cassandra.json +1 -1
- package/src/data/servicereference/services/ce.json +1 -1
- package/src/data/servicereference/services/chatbot.json +1 -1
- package/src/data/servicereference/services/chime.json +1 -1
- package/src/data/servicereference/services/cleanrooms-ml.json +1 -1
- package/src/data/servicereference/services/cleanrooms.json +1 -1
- package/src/data/servicereference/services/cloud9.json +1 -1
- package/src/data/servicereference/services/clouddirectory.json +1 -1
- package/src/data/servicereference/services/cloudformation.json +1 -1
- package/src/data/servicereference/services/cloudfront-keyvaluestore.json +1 -1
- package/src/data/servicereference/services/cloudfront.json +1 -1
- package/src/data/servicereference/services/cloudhsm.json +1 -1
- package/src/data/servicereference/services/cloudsearch.json +1 -1
- package/src/data/servicereference/services/cloudshell.json +1 -1
- package/src/data/servicereference/services/cloudtrail-data.json +1 -1
- package/src/data/servicereference/services/cloudtrail.json +1 -1
- package/src/data/servicereference/services/cloudwatch.json +1 -1
- package/src/data/servicereference/services/codeartifact.json +1 -1
- package/src/data/servicereference/services/codebuild.json +1 -1
- package/src/data/servicereference/services/codecatalyst.json +1 -1
- package/src/data/servicereference/services/codecommit.json +1 -1
- package/src/data/servicereference/services/codeconnections.json +1 -1
- package/src/data/servicereference/services/codedeploy-commands-secure.json +1 -1
- package/src/data/servicereference/services/codedeploy.json +1 -1
- package/src/data/servicereference/services/codeguru-profiler.json +1 -1
- package/src/data/servicereference/services/codeguru-reviewer.json +1 -1
- package/src/data/servicereference/services/codeguru-security.json +1 -1
- package/src/data/servicereference/services/codeguru.json +1 -1
- package/src/data/servicereference/services/codepipeline.json +1 -1
- package/src/data/servicereference/services/codestar-connections.json +1 -1
- package/src/data/servicereference/services/codestar-notifications.json +1 -1
- package/src/data/servicereference/services/codestar.json +1 -1
- package/src/data/servicereference/services/codewhisperer.json +1 -1
- package/src/data/servicereference/services/cognito-identity.json +1 -1
- package/src/data/servicereference/services/cognito-idp.json +1 -1
- package/src/data/servicereference/services/cognito-sync.json +1 -1
- package/src/data/servicereference/services/comprehend.json +1 -1
- package/src/data/servicereference/services/comprehendmedical.json +1 -1
- package/src/data/servicereference/services/compute-optimizer.json +1 -1
- package/src/data/servicereference/services/config.json +1 -1
- package/src/data/servicereference/services/connect-campaigns.json +1 -1
- package/src/data/servicereference/services/connect.json +1 -1
- package/src/data/servicereference/services/consoleapp.json +1 -1
- package/src/data/servicereference/services/consolidatedbilling.json +1 -1
- package/src/data/servicereference/services/controlcatalog.json +1 -1
- package/src/data/servicereference/services/controltower.json +1 -1
- package/src/data/servicereference/services/cost-optimization-hub.json +1 -1
- package/src/data/servicereference/services/cur.json +1 -1
- package/src/data/servicereference/services/customer-verification.json +1 -1
- package/src/data/servicereference/services/databrew.json +1 -1
- package/src/data/servicereference/services/dataexchange.json +1 -1
- package/src/data/servicereference/services/datapipeline.json +1 -1
- package/src/data/servicereference/services/datasync.json +1 -1
- package/src/data/servicereference/services/datazone.json +1 -1
- package/src/data/servicereference/services/dax.json +1 -1
- package/src/data/servicereference/services/dbqms.json +1 -1
- package/src/data/servicereference/services/deadline.json +1 -1
- package/src/data/servicereference/services/detective.json +1 -1
- package/src/data/servicereference/services/devicefarm.json +1 -1
- package/src/data/servicereference/services/devops-guru.json +1 -1
- package/src/data/servicereference/services/directconnect.json +1 -1
- package/src/data/servicereference/services/discovery.json +1 -1
- package/src/data/servicereference/services/dlm.json +1 -1
- package/src/data/servicereference/services/dms.json +1 -1
- package/src/data/servicereference/services/docdb-elastic.json +1 -1
- package/src/data/servicereference/services/drs.json +1 -1
- package/src/data/servicereference/services/ds-data.json +1 -1
- package/src/data/servicereference/services/ds.json +1 -1
- package/src/data/servicereference/services/dsql.json +1 -1
- package/src/data/servicereference/services/dynamodb.json +1 -1
- package/src/data/servicereference/services/ebs.json +1 -1
- package/src/data/servicereference/services/ec2-instance-connect.json +1 -1
- package/src/data/servicereference/services/ec2.json +1 -1
- package/src/data/servicereference/services/ec2messages.json +1 -1
- package/src/data/servicereference/services/ecr-public.json +1 -1
- package/src/data/servicereference/services/ecr.json +1 -1
- package/src/data/servicereference/services/ecs-mcp.json +1 -1
- package/src/data/servicereference/services/ecs.json +1 -1
- package/src/data/servicereference/services/eks-auth.json +1 -1
- package/src/data/servicereference/services/eks-mcp.json +1 -1
- package/src/data/servicereference/services/eks.json +1 -1
- package/src/data/servicereference/services/elasticache.json +1 -1
- package/src/data/servicereference/services/elasticbeanstalk.json +1 -1
- package/src/data/servicereference/services/elasticfilesystem.json +1 -1
- package/src/data/servicereference/services/elasticloadbalancing.json +1 -1
- package/src/data/servicereference/services/elasticmapreduce.json +1 -1
- package/src/data/servicereference/services/elastictranscoder.json +1 -1
- package/src/data/servicereference/services/elemental-activations.json +1 -1
- package/src/data/servicereference/services/elemental-appliances-software.json +1 -1
- package/src/data/servicereference/services/elemental-inference.json +1 -1
- package/src/data/servicereference/services/elemental-support-cases.json +1 -1
- package/src/data/servicereference/services/elemental-support-content.json +1 -1
- package/src/data/servicereference/services/emr-containers.json +1 -1
- package/src/data/servicereference/services/emr-serverless.json +1 -1
- package/src/data/servicereference/services/entityresolution.json +1 -1
- package/src/data/servicereference/services/es.json +1 -1
- package/src/data/servicereference/services/events.json +1 -1
- package/src/data/servicereference/services/evidently.json +1 -1
- package/src/data/servicereference/services/evs.json +1 -1
- package/src/data/servicereference/services/execute-api.json +1 -1
- package/src/data/servicereference/services/finspace-api.json +1 -1
- package/src/data/servicereference/services/finspace.json +1 -1
- package/src/data/servicereference/services/firehose.json +1 -1
- package/src/data/servicereference/services/fis.json +1 -1
- package/src/data/servicereference/services/fms.json +1 -1
- package/src/data/servicereference/services/forecast.json +1 -1
- package/src/data/servicereference/services/frauddetector.json +1 -1
- package/src/data/servicereference/services/freertos.json +1 -1
- package/src/data/servicereference/services/freetier.json +1 -1
- package/src/data/servicereference/services/fsx.json +1 -1
- package/src/data/servicereference/services/gamelift.json +1 -1
- package/src/data/servicereference/services/gameliftstreams.json +1 -1
- package/src/data/servicereference/services/geo-maps.json +1 -1
- package/src/data/servicereference/services/geo-places.json +1 -1
- package/src/data/servicereference/services/geo-routes.json +1 -1
- package/src/data/servicereference/services/geo.json +1 -1
- package/src/data/servicereference/services/glacier.json +1 -1
- package/src/data/servicereference/services/globalaccelerator.json +1 -1
- package/src/data/servicereference/services/glue.json +1 -1
- package/src/data/servicereference/services/grafana.json +1 -1
- package/src/data/servicereference/services/greengrass.json +1 -1
- package/src/data/servicereference/services/groundstation.json +1 -1
- package/src/data/servicereference/services/groundtruthlabeling.json +1 -1
- package/src/data/servicereference/services/guardduty.json +1 -1
- package/src/data/servicereference/services/health-agent.json +1 -1
- package/src/data/servicereference/services/health.json +1 -1
- package/src/data/servicereference/services/healthlake.json +1 -1
- package/src/data/servicereference/services/honeycode.json +1 -1
- package/src/data/servicereference/services/iam.json +1 -1
- package/src/data/servicereference/services/identity-sync.json +1 -1
- package/src/data/servicereference/services/identitystore-auth.json +1 -1
- package/src/data/servicereference/services/identitystore.json +1 -1
- package/src/data/servicereference/services/imagebuilder.json +1 -1
- package/src/data/servicereference/services/importexport.json +1 -1
- package/src/data/servicereference/services/inspector-scan.json +1 -1
- package/src/data/servicereference/services/inspector.json +1 -1
- package/src/data/servicereference/services/inspector2-telemetry.json +1 -1
- package/src/data/servicereference/services/inspector2.json +1 -1
- package/src/data/servicereference/services/interconnect.json +1 -1
- package/src/data/servicereference/services/internetmonitor.json +1 -1
- package/src/data/servicereference/services/invoicing.json +1 -1
- package/src/data/servicereference/services/iot-device-tester.json +1 -1
- package/src/data/servicereference/services/iot.json +1 -1
- package/src/data/servicereference/services/iotanalytics.json +1 -1
- package/src/data/servicereference/services/iotdeviceadvisor.json +1 -1
- package/src/data/servicereference/services/iotevents.json +1 -1
- package/src/data/servicereference/services/iotfleethub.json +1 -1
- package/src/data/servicereference/services/iotfleetwise.json +1 -1
- package/src/data/servicereference/services/iotjobsdata.json +1 -1
- package/src/data/servicereference/services/iotmanagedintegrations.json +1 -1
- package/src/data/servicereference/services/iotsitewise.json +1 -1
- package/src/data/servicereference/services/iottwinmaker.json +1 -1
- package/src/data/servicereference/services/iotwireless.json +1 -1
- package/src/data/servicereference/services/iq-permission.json +1 -1
- package/src/data/servicereference/services/iq.json +1 -1
- package/src/data/servicereference/services/ivs.json +1 -1
- package/src/data/servicereference/services/ivschat.json +1 -1
- package/src/data/servicereference/services/kafka-cluster.json +1 -1
- package/src/data/servicereference/services/kafka.json +1 -1
- package/src/data/servicereference/services/kafkaconnect.json +1 -1
- package/src/data/servicereference/services/kendra-ranking.json +1 -1
- package/src/data/servicereference/services/kendra.json +1 -1
- package/src/data/servicereference/services/kinesis.json +1 -1
- package/src/data/servicereference/services/kinesisanalytics.json +1 -1
- package/src/data/servicereference/services/kinesisvideo.json +1 -1
- package/src/data/servicereference/services/kms.json +1 -1
- package/src/data/servicereference/services/lakeformation.json +1 -1
- package/src/data/servicereference/services/lambda.json +1 -1
- package/src/data/servicereference/services/launchwizard.json +1 -1
- package/src/data/servicereference/services/lex.json +1 -1
- package/src/data/servicereference/services/license-manager-linux-subscriptions.json +1 -1
- package/src/data/servicereference/services/license-manager-user-subscriptions.json +1 -1
- package/src/data/servicereference/services/license-manager.json +1 -1
- package/src/data/servicereference/services/lightsail.json +1 -1
- package/src/data/servicereference/services/logs.json +1 -1
- package/src/data/servicereference/services/lookoutequipment.json +1 -1
- package/src/data/servicereference/services/lookoutmetrics.json +1 -1
- package/src/data/servicereference/services/lookoutvision.json +1 -1
- package/src/data/servicereference/services/m2.json +1 -1
- package/src/data/servicereference/services/machinelearning.json +1 -1
- package/src/data/servicereference/services/macie2.json +1 -1
- package/src/data/servicereference/services/managedblockchain-query.json +1 -1
- package/src/data/servicereference/services/managedblockchain.json +1 -1
- package/src/data/servicereference/services/mapcredits.json +1 -1
- package/src/data/servicereference/services/marketplacecommerceanalytics.json +1 -1
- package/src/data/servicereference/services/mechanicalturk.json +1 -1
- package/src/data/servicereference/services/mediaconnect.json +1 -1
- package/src/data/servicereference/services/mediaconvert.json +1 -1
- package/src/data/servicereference/services/mediaimport.json +1 -1
- package/src/data/servicereference/services/medialive.json +1 -1
- package/src/data/servicereference/services/mediapackage-vod.json +1 -1
- package/src/data/servicereference/services/mediapackage.json +1 -1
- package/src/data/servicereference/services/mediapackagev2.json +1 -1
- package/src/data/servicereference/services/mediastore.json +1 -1
- package/src/data/servicereference/services/mediatailor.json +1 -1
- package/src/data/servicereference/services/medical-imaging.json +1 -1
- package/src/data/servicereference/services/memorydb.json +1 -1
- package/src/data/servicereference/services/mgh.json +1 -1
- package/src/data/servicereference/services/mgn.json +1 -1
- package/src/data/servicereference/services/migrationhub-orchestrator.json +1 -1
- package/src/data/servicereference/services/migrationhub-strategy.json +1 -1
- package/src/data/servicereference/services/mobileanalytics.json +1 -1
- package/src/data/servicereference/services/mobiletargeting.json +1 -1
- package/src/data/servicereference/services/monitron.json +1 -1
- package/src/data/servicereference/services/mpa.json +1 -1
- package/src/data/servicereference/services/mq.json +1 -1
- package/src/data/servicereference/services/neptune-db.json +1 -1
- package/src/data/servicereference/services/neptune-graph.json +1 -1
- package/src/data/servicereference/services/network-firewall.json +1 -1
- package/src/data/servicereference/services/network-security-director.json +1 -1
- package/src/data/servicereference/services/networkflowmonitor.json +1 -1
- package/src/data/servicereference/services/networkmanager-chat.json +1 -1
- package/src/data/servicereference/services/networkmanager.json +1 -1
- package/src/data/servicereference/services/networkmonitor.json +1 -1
- package/src/data/servicereference/services/nimble.json +1 -1
- package/src/data/servicereference/services/notifications-contacts.json +1 -1
- package/src/data/servicereference/services/notifications.json +1 -1
- package/src/data/servicereference/services/nova-act.json +1 -1
- package/src/data/servicereference/services/oam.json +1 -1
- package/src/data/servicereference/services/observabilityadmin.json +1 -1
- package/src/data/servicereference/services/odb.json +1 -1
- package/src/data/servicereference/services/omics.json +1 -1
- package/src/data/servicereference/services/one.json +1 -1
- package/src/data/servicereference/services/opensearch.json +1 -1
- package/src/data/servicereference/services/opsworks-cm.json +1 -1
- package/src/data/servicereference/services/opsworks.json +1 -1
- package/src/data/servicereference/services/organizations.json +1 -1
- package/src/data/servicereference/services/osis.json +1 -1
- package/src/data/servicereference/services/outposts.json +1 -1
- package/src/data/servicereference/services/panorama.json +1 -1
- package/src/data/servicereference/services/partnercentral-account-management.json +1 -1
- package/src/data/servicereference/services/partnercentral.json +1 -1
- package/src/data/servicereference/services/payment-cryptography.json +1 -1
- package/src/data/servicereference/services/payments.json +1 -1
- package/src/data/servicereference/services/pca-connector-ad.json +1 -1
- package/src/data/servicereference/services/pca-connector-scep.json +1 -1
- package/src/data/servicereference/services/pcs.json +1 -1
- package/src/data/servicereference/services/personalize.json +1 -1
- package/src/data/servicereference/services/pi.json +1 -1
- package/src/data/servicereference/services/pipes.json +1 -1
- package/src/data/servicereference/services/polly.json +1 -1
- package/src/data/servicereference/services/pricing.json +1 -1
- package/src/data/servicereference/services/pricingplanmanager.json +1 -1
- package/src/data/servicereference/services/private-networks.json +1 -1
- package/src/data/servicereference/services/profile.json +1 -1
- package/src/data/servicereference/services/proton.json +1 -1
- package/src/data/servicereference/services/purchase-orders.json +1 -1
- package/src/data/servicereference/services/q.json +1 -1
- package/src/data/servicereference/services/qapps.json +1 -1
- package/src/data/servicereference/services/qbusiness.json +1 -1
- package/src/data/servicereference/services/qdeveloper.json +1 -1
- package/src/data/servicereference/services/qldb.json +1 -1
- package/src/data/servicereference/services/quicksight.json +1 -1
- package/src/data/servicereference/services/ram.json +1 -1
- package/src/data/servicereference/services/rbin.json +1 -1
- package/src/data/servicereference/services/rds-data.json +1 -1
- package/src/data/servicereference/services/rds-db.json +1 -1
- package/src/data/servicereference/services/rds.json +1 -1
- package/src/data/servicereference/services/redshift-data.json +1 -1
- package/src/data/servicereference/services/redshift-serverless.json +1 -1
- package/src/data/servicereference/services/redshift.json +1 -1
- package/src/data/servicereference/services/refactor-spaces.json +1 -1
- package/src/data/servicereference/services/rekognition.json +1 -1
- package/src/data/servicereference/services/repostspace.json +1 -1
- package/src/data/servicereference/services/resiliencehub.json +1 -1
- package/src/data/servicereference/services/resource-explorer-2.json +1 -1
- package/src/data/servicereference/services/resource-explorer.json +1 -1
- package/src/data/servicereference/services/resource-groups.json +1 -1
- package/src/data/servicereference/services/rhelkb.json +1 -1
- package/src/data/servicereference/services/robomaker.json +1 -1
- package/src/data/servicereference/services/rolesanywhere.json +1 -1
- package/src/data/servicereference/services/route53-recovery-cluster.json +1 -1
- package/src/data/servicereference/services/route53-recovery-control-config.json +1 -1
- package/src/data/servicereference/services/route53-recovery-readiness.json +1 -1
- package/src/data/servicereference/services/route53.json +1 -1
- package/src/data/servicereference/services/route53domains.json +1 -1
- package/src/data/servicereference/services/route53globalresolver.json +1 -1
- package/src/data/servicereference/services/route53profiles.json +1 -1
- package/src/data/servicereference/services/route53resolver.json +1 -1
- package/src/data/servicereference/services/rtbfabric.json +1 -1
- package/src/data/servicereference/services/rum.json +1 -1
- package/src/data/servicereference/services/s3-object-lambda.json +1 -1
- package/src/data/servicereference/services/s3-outposts.json +1 -1
- package/src/data/servicereference/services/s3.json +1 -1
- package/src/data/servicereference/services/s3express.json +1 -1
- package/src/data/servicereference/services/s3tables.json +1 -1
- package/src/data/servicereference/services/s3vectors.json +1 -1
- package/src/data/servicereference/services/sagemaker-data-science-assistant.json +1 -1
- package/src/data/servicereference/services/sagemaker-geospatial.json +1 -1
- package/src/data/servicereference/services/sagemaker-mlflow.json +1 -1
- package/src/data/servicereference/services/sagemaker-unified-studio-mcp.json +1 -1
- package/src/data/servicereference/services/sagemaker.json +1 -1
- package/src/data/servicereference/services/savingsplans.json +1 -1
- package/src/data/servicereference/services/scheduler.json +1 -1
- package/src/data/servicereference/services/schemas.json +1 -1
- package/src/data/servicereference/services/scn.json +1 -1
- package/src/data/servicereference/services/sdb.json +1 -1
- package/src/data/servicereference/services/secretsmanager.json +1 -1
- package/src/data/servicereference/services/security-ir.json +1 -1
- package/src/data/servicereference/services/securityagent.json +1 -1
- package/src/data/servicereference/services/securityhub.json +1 -1
- package/src/data/servicereference/services/securitylake.json +1 -1
- package/src/data/servicereference/services/serverlessrepo.json +1 -1
- package/src/data/servicereference/services/servicecatalog.json +1 -1
- package/src/data/servicereference/services/servicediscovery.json +1 -1
- package/src/data/servicereference/services/serviceextract.json +1 -1
- package/src/data/servicereference/services/servicequotas.json +1 -1
- package/src/data/servicereference/services/ses.json +1 -1
- package/src/data/servicereference/services/shield.json +1 -1
- package/src/data/servicereference/services/signer.json +1 -1
- package/src/data/servicereference/services/signin.json +1 -1
- package/src/data/servicereference/services/simspaceweaver.json +1 -1
- package/src/data/servicereference/services/sms-voice.json +1 -1
- package/src/data/servicereference/services/sms.json +1 -1
- package/src/data/servicereference/services/snow-device-management.json +1 -1
- package/src/data/servicereference/services/snowball.json +1 -1
- package/src/data/servicereference/services/sns.json +1 -1
- package/src/data/servicereference/services/social-messaging.json +1 -1
- package/src/data/servicereference/services/sqlworkbench.json +1 -1
- package/src/data/servicereference/services/sqs.json +1 -1
- package/src/data/servicereference/services/ssm-contacts.json +1 -1
- package/src/data/servicereference/services/ssm-guiconnect.json +1 -1
- package/src/data/servicereference/services/ssm-incidents.json +1 -1
- package/src/data/servicereference/services/ssm-quicksetup.json +1 -1
- package/src/data/servicereference/services/ssm-sap.json +1 -1
- package/src/data/servicereference/services/ssm.json +1 -1
- package/src/data/servicereference/services/ssmmessages.json +1 -1
- package/src/data/servicereference/services/sso-directory.json +1 -1
- package/src/data/servicereference/services/sso-oauth.json +1 -1
- package/src/data/servicereference/services/sso.json +1 -1
- package/src/data/servicereference/services/states.json +1 -1
- package/src/data/servicereference/services/storagegateway.json +1 -1
- package/src/data/servicereference/services/sts.json +1 -1
- package/src/data/servicereference/services/support-console.json +1 -1
- package/src/data/servicereference/services/support.json +1 -1
- package/src/data/servicereference/services/supportapp.json +1 -1
- package/src/data/servicereference/services/supportplans.json +1 -1
- package/src/data/servicereference/services/sustainability.json +1 -1
- package/src/data/servicereference/services/swf.json +1 -1
- package/src/data/servicereference/services/synthetics.json +1 -1
- package/src/data/servicereference/services/tag.json +1 -1
- package/src/data/servicereference/services/tax.json +1 -1
- package/src/data/servicereference/services/textract.json +1 -1
- package/src/data/servicereference/services/thinclient.json +1 -1
- package/src/data/servicereference/services/timestream-influxdb.json +1 -1
- package/src/data/servicereference/services/timestream.json +1 -1
- package/src/data/servicereference/services/tiros.json +1 -1
- package/src/data/servicereference/services/tnb.json +1 -1
- package/src/data/servicereference/services/transcribe.json +1 -1
- package/src/data/servicereference/services/transfer.json +1 -1
- package/src/data/servicereference/services/transform-custom.json +1 -1
- package/src/data/servicereference/services/transform.json +1 -1
- package/src/data/servicereference/services/translate.json +1 -1
- package/src/data/servicereference/services/trustedadvisor.json +1 -1
- package/src/data/servicereference/services/ts.json +1 -1
- package/src/data/servicereference/services/user-subscriptions.json +1 -1
- package/src/data/servicereference/services/uxc.json +1 -1
- package/src/data/servicereference/services/vendor-insights.json +1 -1
- package/src/data/servicereference/services/verified-access.json +1 -1
- package/src/data/servicereference/services/verifiedpermissions.json +1 -1
- package/src/data/servicereference/services/voiceid.json +1 -1
- package/src/data/servicereference/services/vpc-lattice-svcs.json +1 -1
- package/src/data/servicereference/services/vpc-lattice.json +1 -1
- package/src/data/servicereference/services/vpce.json +1 -1
- package/src/data/servicereference/services/waf-regional.json +1 -1
- package/src/data/servicereference/services/waf.json +1 -1
- package/src/data/servicereference/services/wafv2.json +1 -1
- package/src/data/servicereference/services/wam.json +1 -1
- package/src/data/servicereference/services/wellarchitected.json +1 -1
- package/src/data/servicereference/services/wickr.json +1 -1
- package/src/data/servicereference/services/wisdom.json +1 -1
- package/src/data/servicereference/services/workdocs.json +1 -1
- package/src/data/servicereference/services/worklink.json +1 -1
- package/src/data/servicereference/services/workmail.json +1 -1
- package/src/data/servicereference/services/workmailmessageflow.json +1 -1
- package/src/data/servicereference/services/workspaces-instances.json +1 -1
- package/src/data/servicereference/services/workspaces-web.json +1 -1
- package/src/data/servicereference/services/workspaces.json +1 -1
- package/src/data/servicereference/services/xray.json +1 -1
- package/src/handlers/document-link/document-link.d.ts +4 -0
- package/src/handlers/document-link/document-link.js +36 -0
- package/src/lib/iam-policy/reference/types.d.ts +3 -0
- package/src/lib/treesitter/base.d.ts +1 -0
- package/src/lib/treesitter/hcl.js +43 -29
- package/src/lib/treesitter/json.js +9 -8
- package/src/lib/treesitter/yaml.js +39 -23
- package/src/server.js +3 -0
- package/.direnv/bin/nix-direnv-reload +0 -19
- package/.direnv/flake-profile-a5d5b61aa8a61b7d9d765e1daf971a9a578f1cfa.rc +0 -2156
|
@@ -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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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":{"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { DocumentLink, DocumentLinkParams, TextDocuments } from 'vscode-languageserver';
|
|
2
|
+
import type { TextDocument } from 'vscode-languageserver-textdocument';
|
|
3
|
+
import type { TreeManager } from '../../lib/treesitter/manager.ts';
|
|
4
|
+
export declare function documentLinkHandler(params: DocumentLinkParams, documents: TextDocuments<TextDocument>, _treeManager: TreeManager): DocumentLink[];
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ServiceReference } from "../../lib/iam-policy/reference/services.js";
|
|
2
|
+
export function documentLinkHandler(params, documents, _treeManager) {
|
|
3
|
+
const document = documents.get(params.textDocument.uri);
|
|
4
|
+
if (!document)
|
|
5
|
+
return [];
|
|
6
|
+
const text = document.getText();
|
|
7
|
+
const links = [];
|
|
8
|
+
const actionSet = new Set(ServiceReference.getAllActions().map((a) => a.toLowerCase()));
|
|
9
|
+
const pattern = /[a-z0-9-]+:[A-Za-z0-9*?]+/g;
|
|
10
|
+
for (const match of text.matchAll(pattern)) {
|
|
11
|
+
if (!actionSet.has(match[0].toLowerCase()))
|
|
12
|
+
continue;
|
|
13
|
+
const [serviceName, actionName] = match[0].split(':');
|
|
14
|
+
const action = ServiceReference.getAction(serviceName, actionName);
|
|
15
|
+
if (!action)
|
|
16
|
+
continue;
|
|
17
|
+
const index = match.index ?? 0;
|
|
18
|
+
const start = document.positionAt(index);
|
|
19
|
+
const end = document.positionAt(index + match[0].length);
|
|
20
|
+
if (action.iamUrl) {
|
|
21
|
+
links.push({
|
|
22
|
+
range: { start, end },
|
|
23
|
+
target: action.iamUrl,
|
|
24
|
+
tooltip: 'IAM Actions, Conditions, and Context Keys',
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
if (action.operationUrl) {
|
|
28
|
+
links.push({
|
|
29
|
+
range: { start, end },
|
|
30
|
+
target: action.operationUrl,
|
|
31
|
+
tooltip: 'API Operation Documentation',
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return links;
|
|
36
|
+
}
|
|
@@ -43,6 +43,7 @@ export type RawReference = {
|
|
|
43
43
|
};
|
|
44
44
|
export type ServiceData = {
|
|
45
45
|
name: string;
|
|
46
|
+
url?: string;
|
|
46
47
|
actions: Record<string, Action>;
|
|
47
48
|
resources: Array<{
|
|
48
49
|
name: string;
|
|
@@ -64,6 +65,8 @@ export type Action = {
|
|
|
64
65
|
}>;
|
|
65
66
|
dependentActions?: Array<string>;
|
|
66
67
|
permissionOnly?: boolean;
|
|
68
|
+
operationUrl?: string;
|
|
69
|
+
iamUrl?: string;
|
|
67
70
|
};
|
|
68
71
|
export type ConditionKey = {
|
|
69
72
|
types: Array<string>;
|
|
@@ -163,8 +163,8 @@ export class TreeHcl extends TreeBase {
|
|
|
163
163
|
}
|
|
164
164
|
if (role === null)
|
|
165
165
|
role = 'key';
|
|
166
|
-
const partial = this.#
|
|
167
|
-
return { keys, role, partial };
|
|
166
|
+
const { partial, value } = this.#extractJsonencodePartialAndValue(cursorNode, position);
|
|
167
|
+
return { keys, role, partial, value };
|
|
168
168
|
}
|
|
169
169
|
#getObjectElemKey(element) {
|
|
170
170
|
const keyExpression = element.namedChildren.find((child) => child.type === 'expression');
|
|
@@ -191,20 +191,21 @@ export class TreeHcl extends TreeBase {
|
|
|
191
191
|
.map((element) => this.#getObjectElemKey(element))
|
|
192
192
|
.filter((key) => key !== null);
|
|
193
193
|
}
|
|
194
|
-
#
|
|
194
|
+
#extractJsonencodePartialAndValue(node, position) {
|
|
195
195
|
let current = node;
|
|
196
196
|
while (current) {
|
|
197
197
|
if (current.type === 'identifier' || current.type === 'template_literal') {
|
|
198
|
+
const value = current.text;
|
|
198
199
|
if (position.line === current.startPosition.row) {
|
|
199
|
-
return
|
|
200
|
+
return { partial: value.slice(0, position.column - current.startPosition.column), value };
|
|
200
201
|
}
|
|
201
|
-
return
|
|
202
|
+
return { partial: value, value };
|
|
202
203
|
}
|
|
203
204
|
if (current.type === 'object' || current.type === 'object_elem')
|
|
204
205
|
break;
|
|
205
206
|
current = current.parent;
|
|
206
207
|
}
|
|
207
|
-
return '';
|
|
208
|
+
return { partial: '', value: '' };
|
|
208
209
|
}
|
|
209
210
|
// ---------------------------------------------------------------------------
|
|
210
211
|
// Block mode — block/body/attribute, snake_case keys
|
|
@@ -226,7 +227,7 @@ export class TreeHcl extends TreeBase {
|
|
|
226
227
|
return this.#pickBestCursorContext(context1, context2);
|
|
227
228
|
}
|
|
228
229
|
// Cursor is on the block itself (outside body span) — statement-key level
|
|
229
|
-
const partial = this.#
|
|
230
|
+
const { partial, value } = this.#extractBlockPartialAndValue(node, position);
|
|
230
231
|
// Check for incomplete attributes on the same line (may be in ERROR nodes
|
|
231
232
|
// when tree-sitter can't parse the body due to a missing value)
|
|
232
233
|
const searchParent = statementBody ?? statementBlock;
|
|
@@ -242,6 +243,7 @@ export class TreeHcl extends TreeBase {
|
|
|
242
243
|
keys: [id.text],
|
|
243
244
|
role: 'value',
|
|
244
245
|
partial: '',
|
|
246
|
+
value: '',
|
|
245
247
|
policyFormat: 'hcl-block',
|
|
246
248
|
};
|
|
247
249
|
}
|
|
@@ -251,6 +253,7 @@ export class TreeHcl extends TreeBase {
|
|
|
251
253
|
keys: [],
|
|
252
254
|
role: 'key',
|
|
253
255
|
partial,
|
|
256
|
+
value,
|
|
254
257
|
policyFormat: 'hcl-block',
|
|
255
258
|
};
|
|
256
259
|
}
|
|
@@ -339,8 +342,8 @@ export class TreeHcl extends TreeBase {
|
|
|
339
342
|
}
|
|
340
343
|
if (role === null)
|
|
341
344
|
role = 'key';
|
|
342
|
-
const partial = this.#
|
|
343
|
-
return { keys, role, partial };
|
|
345
|
+
const { partial, value } = this.#extractBlockPartialAndValue(cursorNode, position);
|
|
346
|
+
return { keys, role, partial, value };
|
|
344
347
|
}
|
|
345
348
|
#findEnclosingBlock(node, blockName, statementBody) {
|
|
346
349
|
let current = node;
|
|
@@ -390,20 +393,21 @@ export class TreeHcl extends TreeBase {
|
|
|
390
393
|
#hasBodyAttribute(body, name) {
|
|
391
394
|
return body.namedChildren.some((child) => child.type === 'attribute' && child.namedChildren.some((id) => id.type === 'identifier' && id.text === name));
|
|
392
395
|
}
|
|
393
|
-
#
|
|
396
|
+
#extractBlockPartialAndValue(node, position) {
|
|
394
397
|
let current = node;
|
|
395
398
|
while (current) {
|
|
396
399
|
if (current.type === 'identifier' || current.type === 'template_literal') {
|
|
400
|
+
const value = current.text;
|
|
397
401
|
if (position.line === current.startPosition.row) {
|
|
398
|
-
return
|
|
402
|
+
return { partial: value.slice(0, position.column - current.startPosition.column), value };
|
|
399
403
|
}
|
|
400
|
-
return
|
|
404
|
+
return { partial: value, value };
|
|
401
405
|
}
|
|
402
406
|
if (current.type === 'body' || current.type === 'attribute' || current.type === 'block')
|
|
403
407
|
break;
|
|
404
408
|
current = current.parent;
|
|
405
409
|
}
|
|
406
|
-
return '';
|
|
410
|
+
return { partial: '', value: '' };
|
|
407
411
|
}
|
|
408
412
|
// ---------------------------------------------------------------------------
|
|
409
413
|
// Shared
|
|
@@ -533,20 +537,21 @@ export class TreeHcl extends TreeBase {
|
|
|
533
537
|
}
|
|
534
538
|
if (!foundStatement || !lastKey || !policyFormat)
|
|
535
539
|
return null;
|
|
536
|
-
// Extract partial: when the key came from an attribute/object_elem
|
|
537
|
-
// contains the quote (e.g., `effect = "`),
|
|
538
|
-
// is inside a string (open quote slurped subsequent lines),
|
|
539
|
-
// template_literal. Otherwise extract from ERROR node text.
|
|
540
|
+
// Extract partial and value: when the key came from an attribute/object_elem
|
|
541
|
+
// that contains the quote (e.g., `effect = "`), they're empty. When the
|
|
542
|
+
// cursor node is inside a string (open quote slurped subsequent lines),
|
|
543
|
+
// extract from the template_literal. Otherwise extract from ERROR node text.
|
|
540
544
|
let partial = '';
|
|
545
|
+
let value = '';
|
|
541
546
|
if (!lastKeyFromAttribute) {
|
|
542
547
|
if (this.#isInsideQuote(node)) {
|
|
543
|
-
partial = this.#
|
|
548
|
+
({ partial, value } = this.#extractQuotedPartialAndValue(node, position));
|
|
544
549
|
}
|
|
545
550
|
else if (nodeBefore && this.#isInsideQuote(nodeBefore)) {
|
|
546
|
-
partial = this.#
|
|
551
|
+
({ partial, value } = this.#extractQuotedPartialAndValue(nodeBefore, position));
|
|
547
552
|
}
|
|
548
553
|
else {
|
|
549
|
-
partial = this.#
|
|
554
|
+
({ partial, value } = this.#extractPartialAndValueFromErrorNode(errorNode, position));
|
|
550
555
|
}
|
|
551
556
|
}
|
|
552
557
|
// Build keys with sub-block prefix when inside a sub-block
|
|
@@ -561,6 +566,7 @@ export class TreeHcl extends TreeBase {
|
|
|
561
566
|
keys,
|
|
562
567
|
role: 'value',
|
|
563
568
|
partial,
|
|
569
|
+
value,
|
|
564
570
|
policyFormat,
|
|
565
571
|
};
|
|
566
572
|
}
|
|
@@ -568,27 +574,29 @@ export class TreeHcl extends TreeBase {
|
|
|
568
574
|
* Extract partial from inside a quoted string (when the open quote caused
|
|
569
575
|
* tree-sitter to slurp subsequent lines into a string_lit).
|
|
570
576
|
*/
|
|
571
|
-
#
|
|
577
|
+
#extractQuotedPartialAndValue(node, position) {
|
|
572
578
|
let current = node;
|
|
573
579
|
while (current) {
|
|
574
580
|
if (current.type === 'template_literal') {
|
|
581
|
+
const value = current.text;
|
|
575
582
|
if (position.line === current.startPosition.row) {
|
|
576
|
-
return
|
|
583
|
+
return { partial: value.slice(0, position.column - current.startPosition.column), value };
|
|
577
584
|
}
|
|
578
|
-
return '';
|
|
585
|
+
return { partial: '', value };
|
|
579
586
|
}
|
|
580
587
|
if (current.type === 'quoted_template_start')
|
|
581
|
-
return '';
|
|
588
|
+
return { partial: '', value: '' };
|
|
582
589
|
if (current.type === 'string_lit') {
|
|
583
590
|
// Cursor is right after the opening quote, no template_literal yet
|
|
584
|
-
return '';
|
|
591
|
+
return { partial: '', value: '' };
|
|
585
592
|
}
|
|
586
593
|
current = current.parent;
|
|
587
594
|
}
|
|
588
|
-
return '';
|
|
595
|
+
return { partial: '', value: '' };
|
|
589
596
|
}
|
|
590
|
-
#
|
|
597
|
+
#extractPartialAndValueFromErrorNode(errorNode, position) {
|
|
591
598
|
let afterColumn = 0;
|
|
599
|
+
let nextChildColumn = null;
|
|
592
600
|
for (const child of errorNode.children) {
|
|
593
601
|
if (child.startPosition.row !== position.line)
|
|
594
602
|
continue;
|
|
@@ -599,14 +607,20 @@ export class TreeHcl extends TreeBase {
|
|
|
599
607
|
if (child.endPosition.column <= position.column) {
|
|
600
608
|
afterColumn = child.endPosition.column;
|
|
601
609
|
}
|
|
610
|
+
else if (nextChildColumn === null && child.startPosition.column > position.column) {
|
|
611
|
+
nextChildColumn = child.startPosition.column;
|
|
612
|
+
}
|
|
602
613
|
}
|
|
603
614
|
const lines = errorNode.text.split('\n');
|
|
604
615
|
const lineIndex = position.line - errorNode.startPosition.row;
|
|
605
616
|
if (lineIndex < 0 || lineIndex >= lines.length)
|
|
606
|
-
return '';
|
|
617
|
+
return { partial: '', value: '' };
|
|
607
618
|
const line = lines[lineIndex];
|
|
608
619
|
const startColumn = lineIndex === 0 ? errorNode.startPosition.column : 0;
|
|
609
|
-
|
|
620
|
+
const partial = line.slice(afterColumn - startColumn, position.column - startColumn);
|
|
621
|
+
const valueEnd = nextChildColumn !== null ? nextChildColumn - startColumn : line.length;
|
|
622
|
+
const value = line.slice(afterColumn - startColumn, valueEnd);
|
|
623
|
+
return { partial, value };
|
|
610
624
|
}
|
|
611
625
|
#getExpressionIdentifier(expression) {
|
|
612
626
|
const variableExpression = expression.namedChildren.find((child) => child.type === 'variable_expr');
|
|
@@ -122,8 +122,8 @@ export class TreeJson extends TreeBase {
|
|
|
122
122
|
}
|
|
123
123
|
if (role === null)
|
|
124
124
|
role = 'key';
|
|
125
|
-
const partial = this.#
|
|
126
|
-
return { keys, role, partial };
|
|
125
|
+
const { partial, value } = this.#extractPartialAndValue(cursorNode, position);
|
|
126
|
+
return { keys, role, partial, value };
|
|
127
127
|
}
|
|
128
128
|
/**
|
|
129
129
|
* Walk up from a node to find an object that sits inside a Statement array.
|
|
@@ -234,23 +234,24 @@ export class TreeJson extends TreeBase {
|
|
|
234
234
|
return false;
|
|
235
235
|
}
|
|
236
236
|
/**
|
|
237
|
-
* Extract the partial text
|
|
238
|
-
* node
|
|
237
|
+
* Extract the partial text (up to cursor) and full value from the nearest
|
|
238
|
+
* string_content node.
|
|
239
239
|
*/
|
|
240
|
-
#
|
|
240
|
+
#extractPartialAndValue(node, position) {
|
|
241
241
|
let current = node;
|
|
242
242
|
while (current) {
|
|
243
243
|
if (current.type === 'string_content') {
|
|
244
|
+
const value = current.text;
|
|
244
245
|
if (position.line === current.startPosition.row) {
|
|
245
|
-
return
|
|
246
|
+
return { partial: value.slice(0, position.column - current.startPosition.column), value };
|
|
246
247
|
}
|
|
247
|
-
return
|
|
248
|
+
return { partial: value, value };
|
|
248
249
|
}
|
|
249
250
|
if (current.type === 'object' || current.type === 'pair')
|
|
250
251
|
break;
|
|
251
252
|
current = current.parent;
|
|
252
253
|
}
|
|
253
|
-
return '';
|
|
254
|
+
return { partial: '', value: '' };
|
|
254
255
|
}
|
|
255
256
|
/**
|
|
256
257
|
* Read string values from a JSON pair's value (string or array of strings).
|
|
@@ -150,11 +150,12 @@ export class TreeYaml extends TreeBase {
|
|
|
150
150
|
const resolved = this.#resolveWithinMapping(statementMapping, position);
|
|
151
151
|
if (!resolved)
|
|
152
152
|
return null;
|
|
153
|
-
const partial = this.#
|
|
153
|
+
const { partial, value } = this.#extractPartialAndValue(cursorNode, position);
|
|
154
154
|
return {
|
|
155
155
|
keys: resolved.keys,
|
|
156
156
|
role: resolved.role,
|
|
157
157
|
partial,
|
|
158
|
+
value,
|
|
158
159
|
policyFormat: 'standard',
|
|
159
160
|
};
|
|
160
161
|
}
|
|
@@ -194,7 +195,7 @@ export class TreeYaml extends TreeBase {
|
|
|
194
195
|
return {
|
|
195
196
|
keys: [],
|
|
196
197
|
role: 'key',
|
|
197
|
-
|
|
198
|
+
...this.#extractPartialAndValue(node, position),
|
|
198
199
|
policyFormat: 'standard',
|
|
199
200
|
};
|
|
200
201
|
}
|
|
@@ -203,7 +204,7 @@ export class TreeYaml extends TreeBase {
|
|
|
203
204
|
return {
|
|
204
205
|
keys: [],
|
|
205
206
|
role: 'key',
|
|
206
|
-
|
|
207
|
+
...this.#extractPartialAndValue(node, position),
|
|
207
208
|
policyFormat: 'standard',
|
|
208
209
|
};
|
|
209
210
|
}
|
|
@@ -229,7 +230,7 @@ export class TreeYaml extends TreeBase {
|
|
|
229
230
|
return {
|
|
230
231
|
keys: [],
|
|
231
232
|
role: 'key',
|
|
232
|
-
|
|
233
|
+
...this.#extractPartialAndValue(node, position),
|
|
233
234
|
policyFormat: 'standard',
|
|
234
235
|
};
|
|
235
236
|
}
|
|
@@ -397,8 +398,10 @@ export class TreeYaml extends TreeBase {
|
|
|
397
398
|
}
|
|
398
399
|
if (role === null)
|
|
399
400
|
role = 'key';
|
|
400
|
-
const partial
|
|
401
|
-
|
|
401
|
+
const { partial: extractedPartial, value: extractedValue } = this.#extractPartialAndValue(cursorNode, position);
|
|
402
|
+
const partial = colonPartial || extractedPartial;
|
|
403
|
+
const value = colonPartial ? colonPartial : extractedValue;
|
|
404
|
+
return { keys, role, partial, value };
|
|
402
405
|
}
|
|
403
406
|
/**
|
|
404
407
|
* Resolve the cursor's position within a block_mapping by finding the pair covering
|
|
@@ -593,29 +596,29 @@ export class TreeYaml extends TreeBase {
|
|
|
593
596
|
.filter((key) => key !== null);
|
|
594
597
|
}
|
|
595
598
|
/**
|
|
596
|
-
* Extract the partial text
|
|
597
|
-
*
|
|
599
|
+
* Extract the partial text (up to cursor) and full value from the nearest
|
|
600
|
+
* scalar node.
|
|
598
601
|
*/
|
|
599
|
-
#
|
|
602
|
+
#extractPartialAndValue(node, position) {
|
|
600
603
|
let current = node;
|
|
601
604
|
while (current) {
|
|
602
605
|
if (current.type === 'string_scalar') {
|
|
603
|
-
return this.#
|
|
606
|
+
return this.#sliceToPositionAndValue(current.text, current.startPosition.column, position, node);
|
|
604
607
|
}
|
|
605
608
|
if (current.type === 'double_quote_scalar' || current.type === 'single_quote_scalar') {
|
|
606
|
-
return this.#
|
|
609
|
+
return this.#sliceToPositionAndValue(current.text.slice(1, -1), current.startPosition.column + 1, position, node);
|
|
607
610
|
}
|
|
608
611
|
if (current.type === 'block_mapping' || current.type === 'block_mapping_pair')
|
|
609
612
|
break;
|
|
610
613
|
current = current.parent;
|
|
611
614
|
}
|
|
612
|
-
return '';
|
|
615
|
+
return { partial: '', value: '' };
|
|
613
616
|
}
|
|
614
|
-
#
|
|
617
|
+
#sliceToPositionAndValue(text, startColumn, position, node) {
|
|
615
618
|
if (position.line === node.startPosition.row) {
|
|
616
|
-
return text.slice(0, position.column - startColumn);
|
|
619
|
+
return { partial: text.slice(0, position.column - startColumn), value: text };
|
|
617
620
|
}
|
|
618
|
-
return text;
|
|
621
|
+
return { partial: text, value: text };
|
|
619
622
|
}
|
|
620
623
|
/**
|
|
621
624
|
* When tree-sitter produces a root-level ERROR (e.g., unterminated quote in
|
|
@@ -662,6 +665,7 @@ export class TreeYaml extends TreeBase {
|
|
|
662
665
|
keys: [keyText],
|
|
663
666
|
role: 'value',
|
|
664
667
|
partial: '',
|
|
668
|
+
value: '',
|
|
665
669
|
policyFormat: 'standard',
|
|
666
670
|
};
|
|
667
671
|
}
|
|
@@ -674,10 +678,12 @@ export class TreeYaml extends TreeBase {
|
|
|
674
678
|
const valueText = this.#getPairValueText(child) ?? '';
|
|
675
679
|
// If cursor is past the ERROR end (colon continuation), append ":"
|
|
676
680
|
const colonSuffix = errorNode.endPosition.row === position.line && position.column > errorNode.endPosition.column ? ':' : '';
|
|
681
|
+
const fullValue = valueText + colonSuffix;
|
|
677
682
|
return {
|
|
678
683
|
keys: [pairKey],
|
|
679
684
|
role: 'value',
|
|
680
|
-
partial:
|
|
685
|
+
partial: fullValue,
|
|
686
|
+
value: fullValue,
|
|
681
687
|
policyFormat: 'standard',
|
|
682
688
|
};
|
|
683
689
|
}
|
|
@@ -693,39 +699,49 @@ export class TreeYaml extends TreeBase {
|
|
|
693
699
|
// If we found a key before cursor line and the cursor is in its value area
|
|
694
700
|
// (e.g., `Resource:\n - !Sub "arn:` where the open quote breaks the parse)
|
|
695
701
|
if (lastKey) {
|
|
696
|
-
const partial = this.#
|
|
702
|
+
const { partial, value } = this.#extractPartialAndValueFromErrorNode(errorNode, position);
|
|
697
703
|
return {
|
|
698
704
|
keys: [lastKey],
|
|
699
705
|
role: 'value',
|
|
700
706
|
partial,
|
|
707
|
+
value,
|
|
701
708
|
policyFormat: 'standard',
|
|
702
709
|
};
|
|
703
710
|
}
|
|
704
711
|
return null;
|
|
705
712
|
}
|
|
706
713
|
/**
|
|
707
|
-
* Extract the partial text from an ERROR node for the cursor line.
|
|
714
|
+
* Extract the partial text and full value from an ERROR node for the cursor line.
|
|
708
715
|
* Scans ERROR children on the cursor line to find the last child before/at the
|
|
709
|
-
* cursor, then takes the substring from its end to the cursor column
|
|
716
|
+
* cursor, then takes the substring from its end to the cursor column (partial)
|
|
717
|
+
* and to the next child or end of content (value).
|
|
710
718
|
*/
|
|
711
|
-
#
|
|
712
|
-
// Find the rightmost child on the cursor line that ends at or before the cursor
|
|
719
|
+
#extractPartialAndValueFromErrorNode(errorNode, position) {
|
|
720
|
+
// Find the rightmost child on the cursor line that ends at or before the cursor,
|
|
721
|
+
// and the leftmost child that starts after the cursor
|
|
713
722
|
let afterColumn = 0;
|
|
723
|
+
let nextChildColumn = null;
|
|
714
724
|
for (const child of errorNode.children) {
|
|
715
725
|
if (child.startPosition.row !== position.line)
|
|
716
726
|
continue;
|
|
717
727
|
if (child.endPosition.column <= position.column) {
|
|
718
728
|
afterColumn = child.endPosition.column;
|
|
719
729
|
}
|
|
730
|
+
else if (nextChildColumn === null && child.startPosition.column > position.column) {
|
|
731
|
+
nextChildColumn = child.startPosition.column;
|
|
732
|
+
}
|
|
720
733
|
}
|
|
721
734
|
// Extract from the ERROR node's text: find the cursor line and slice
|
|
722
735
|
const lines = errorNode.text.split('\n');
|
|
723
736
|
const lineIndex = position.line - errorNode.startPosition.row;
|
|
724
737
|
if (lineIndex < 0 || lineIndex >= lines.length)
|
|
725
|
-
return '';
|
|
738
|
+
return { partial: '', value: '' };
|
|
726
739
|
const line = lines[lineIndex];
|
|
727
740
|
const startColumn = lineIndex === 0 ? errorNode.startPosition.column : 0;
|
|
728
|
-
|
|
741
|
+
const partial = line.slice(afterColumn - startColumn, position.column - startColumn);
|
|
742
|
+
const valueEnd = nextChildColumn !== null ? nextChildColumn - startColumn : line.length;
|
|
743
|
+
const value = line.slice(afterColumn - startColumn, valueEnd);
|
|
744
|
+
return { partial, value };
|
|
729
745
|
}
|
|
730
746
|
#getPairValueText(pair) {
|
|
731
747
|
const flowNodes = pair.namedChildren.filter((child) => child.type === 'flow_node');
|
package/src/server.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { createConnection, ProposedFeatures, TextDocumentSyncKind, TextDocuments } from 'vscode-languageserver/node.js';
|
|
3
3
|
import { TextDocument } from 'vscode-languageserver-textdocument';
|
|
4
4
|
import { handleCompletionRequest } from "./handlers/completion/index.js";
|
|
5
|
+
import { documentLinkHandler } from "./handlers/document-link/document-link.js";
|
|
5
6
|
import { TreeManager } from "./lib/treesitter/manager.js";
|
|
6
7
|
const connection = createConnection(ProposedFeatures.all);
|
|
7
8
|
const documents = new TextDocuments(TextDocument);
|
|
@@ -15,6 +16,7 @@ connection.onInitialize(async () => {
|
|
|
15
16
|
triggerCharacters: ['"', ':', '*'],
|
|
16
17
|
},
|
|
17
18
|
hoverProvider: false,
|
|
19
|
+
documentLinkProvider: {},
|
|
18
20
|
},
|
|
19
21
|
};
|
|
20
22
|
});
|
|
@@ -22,5 +24,6 @@ documents.onDidOpen(({ document }) => treeManager.openDocument(document.uri, doc
|
|
|
22
24
|
documents.onDidChangeContent(({ document }) => treeManager.updateDocument(document.uri, document.getText()));
|
|
23
25
|
documents.onDidClose(({ document }) => treeManager.closeDocument(document.uri));
|
|
24
26
|
connection.onCompletion((params) => handleCompletionRequest(params, documents, treeManager));
|
|
27
|
+
connection.onDocumentLinks((params) => documentLinkHandler(params, documents, treeManager));
|
|
25
28
|
documents.listen(connection);
|
|
26
29
|
connection.listen();
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
set -e
|
|
3
|
-
if [[ ! -d "/Users/mbarney/dev/personal/aws-iam-ls" ]]; then
|
|
4
|
-
echo "Cannot find source directory; Did you move it?"
|
|
5
|
-
echo "(Looking for "/Users/mbarney/dev/personal/aws-iam-ls")"
|
|
6
|
-
echo 'Cannot force reload with this script - use "direnv reload" manually and then try again'
|
|
7
|
-
exit 1
|
|
8
|
-
fi
|
|
9
|
-
|
|
10
|
-
# rebuild the cache forcefully
|
|
11
|
-
_nix_direnv_force_reload=1 direnv exec "/Users/mbarney/dev/personal/aws-iam-ls" true
|
|
12
|
-
|
|
13
|
-
# Update the mtime for .envrc.
|
|
14
|
-
# This will cause direnv to reload again - but without re-building.
|
|
15
|
-
touch "/Users/mbarney/dev/personal/aws-iam-ls/.envrc"
|
|
16
|
-
|
|
17
|
-
# Also update the timestamp of whatever profile_rc we have.
|
|
18
|
-
# This makes sure that we know we are up to date.
|
|
19
|
-
touch -r "/Users/mbarney/dev/personal/aws-iam-ls/.envrc" "/Users/mbarney/dev/personal/aws-iam-ls/.direnv"/*.rc
|