iam-policy-validator 1.14.2__tar.gz → 1.14.3__tar.gz

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 (772) hide show
  1. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/PKG-INFO +1 -1
  2. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/__version__.py +1 -1
  3. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/checks/condition_key_validation.py +1 -1
  4. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/aws_service/validators.py +99 -8
  5. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/config/aws_global_conditions.py +8 -4
  6. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/constants.py +29 -0
  7. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/integrations/github_integration.py +1 -1
  8. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/checks/test_condition_key_validation_check.py +195 -0
  9. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/.github/dependabot.yml +0 -0
  10. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/.github/workflows/ci.yml +0 -0
  11. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/.github/workflows/cleanup-prereleases.yml +0 -0
  12. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/.github/workflows/codeql.yml +0 -0
  13. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/.github/workflows/pre-release.yml +0 -0
  14. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/.github/workflows/release.yml +0 -0
  15. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/.github/workflows/scorecard.yml +0 -0
  16. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/.gitignore +0 -0
  17. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/.python-version +0 -0
  18. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/CONTRIBUTING.md +0 -0
  19. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/DOCS.md +0 -0
  20. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/LICENSE +0 -0
  21. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/Makefile +0 -0
  22. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/README.md +0 -0
  23. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/SECURITY.md +0 -0
  24. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/action.yaml +0 -0
  25. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/_manifest.json +0 -0
  26. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/_services.json +0 -0
  27. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/a2c.json +0 -0
  28. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/a4b.json +0 -0
  29. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/access-analyzer.json +0 -0
  30. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/account.json +0 -0
  31. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/acm-pca.json +0 -0
  32. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/acm.json +0 -0
  33. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/action-recommendations.json +0 -0
  34. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/activate.json +0 -0
  35. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/aiops.json +0 -0
  36. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/airflow.json +0 -0
  37. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/amplify.json +0 -0
  38. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/amplifybackend.json +0 -0
  39. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/amplifyuibuilder.json +0 -0
  40. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/aoss.json +0 -0
  41. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/apigateway.json +0 -0
  42. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/app-integrations.json +0 -0
  43. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/appconfig.json +0 -0
  44. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/appfabric.json +0 -0
  45. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/appflow.json +0 -0
  46. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/application-autoscaling.json +0 -0
  47. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/application-signals.json +0 -0
  48. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/application-transformation.json +0 -0
  49. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/applicationinsights.json +0 -0
  50. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/appmesh-preview.json +0 -0
  51. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/appmesh.json +0 -0
  52. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/apprunner.json +0 -0
  53. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/appstream.json +0 -0
  54. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/appstudio.json +0 -0
  55. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/appsync.json +0 -0
  56. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/apptest.json +0 -0
  57. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/aps.json +0 -0
  58. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/arc-region-switch.json +0 -0
  59. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/arc-zonal-shift.json +0 -0
  60. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/arsenal.json +0 -0
  61. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/artifact.json +0 -0
  62. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/athena.json +0 -0
  63. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/auditmanager.json +0 -0
  64. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/autoscaling-plans.json +0 -0
  65. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/autoscaling.json +0 -0
  66. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/aws-marketplace-management.json +0 -0
  67. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/aws-marketplace.json +0 -0
  68. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/aws-portal.json +0 -0
  69. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/awsconnector.json +0 -0
  70. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/b2bi.json +0 -0
  71. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/backup-gateway.json +0 -0
  72. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/backup-search.json +0 -0
  73. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/backup-storage.json +0 -0
  74. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/backup.json +0 -0
  75. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/batch.json +0 -0
  76. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/bcm-dashboards.json +0 -0
  77. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/bcm-data-exports.json +0 -0
  78. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/bcm-pricing-calculator.json +0 -0
  79. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/bcm-recommended-actions.json +0 -0
  80. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/bedrock-agentcore.json +0 -0
  81. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/bedrock.json +0 -0
  82. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/billing.json +0 -0
  83. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/billingconductor.json +0 -0
  84. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/braket.json +0 -0
  85. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/budgets.json +0 -0
  86. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/bugbust.json +0 -0
  87. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/cases.json +0 -0
  88. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/cassandra.json +0 -0
  89. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/ce.json +0 -0
  90. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/chatbot.json +0 -0
  91. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/chime.json +0 -0
  92. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/cleanrooms-ml.json +0 -0
  93. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/cleanrooms.json +0 -0
  94. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/cloud9.json +0 -0
  95. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/clouddirectory.json +0 -0
  96. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/cloudformation.json +0 -0
  97. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/cloudfront-keyvaluestore.json +0 -0
  98. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/cloudfront.json +0 -0
  99. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/cloudhsm.json +0 -0
  100. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/cloudsearch.json +0 -0
  101. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/cloudshell.json +0 -0
  102. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/cloudtrail-data.json +0 -0
  103. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/cloudtrail.json +0 -0
  104. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/cloudwatch.json +0 -0
  105. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/codeartifact.json +0 -0
  106. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/codebuild.json +0 -0
  107. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/codecatalyst.json +0 -0
  108. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/codecommit.json +0 -0
  109. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/codeconnections.json +0 -0
  110. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/codedeploy-commands-secure.json +0 -0
  111. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/codedeploy.json +0 -0
  112. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/codeguru-profiler.json +0 -0
  113. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/codeguru-reviewer.json +0 -0
  114. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/codeguru-security.json +0 -0
  115. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/codeguru.json +0 -0
  116. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/codepipeline.json +0 -0
  117. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/codestar-connections.json +0 -0
  118. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/codestar-notifications.json +0 -0
  119. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/codestar.json +0 -0
  120. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/codewhisperer.json +0 -0
  121. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/cognito-identity.json +0 -0
  122. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/cognito-idp.json +0 -0
  123. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/cognito-sync.json +0 -0
  124. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/comprehend.json +0 -0
  125. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/comprehendmedical.json +0 -0
  126. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/compute-optimizer.json +0 -0
  127. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/config.json +0 -0
  128. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/connect-campaigns.json +0 -0
  129. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/connect.json +0 -0
  130. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/consoleapp.json +0 -0
  131. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/consolidatedbilling.json +0 -0
  132. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/controlcatalog.json +0 -0
  133. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/controltower.json +0 -0
  134. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/cost-optimization-hub.json +0 -0
  135. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/cur.json +0 -0
  136. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/customer-verification.json +0 -0
  137. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/databrew.json +0 -0
  138. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/dataexchange.json +0 -0
  139. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/datapipeline.json +0 -0
  140. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/datasync.json +0 -0
  141. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/datazone.json +0 -0
  142. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/dax.json +0 -0
  143. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/dbqms.json +0 -0
  144. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/deadline.json +0 -0
  145. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/deepcomposer.json +0 -0
  146. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/deepracer.json +0 -0
  147. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/detective.json +0 -0
  148. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/devicefarm.json +0 -0
  149. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/devops-guru.json +0 -0
  150. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/directconnect.json +0 -0
  151. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/discovery.json +0 -0
  152. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/dlm.json +0 -0
  153. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/dms.json +0 -0
  154. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/docdb-elastic.json +0 -0
  155. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/drs.json +0 -0
  156. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/ds-data.json +0 -0
  157. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/ds.json +0 -0
  158. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/dsql.json +0 -0
  159. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/dynamodb.json +0 -0
  160. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/ebs.json +0 -0
  161. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/ec2-instance-connect.json +0 -0
  162. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/ec2.json +0 -0
  163. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/ec2messages.json +0 -0
  164. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/ecr-public.json +0 -0
  165. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/ecr.json +0 -0
  166. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/ecs.json +0 -0
  167. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/eks-auth.json +0 -0
  168. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/eks.json +0 -0
  169. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/elasticache.json +0 -0
  170. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/elasticbeanstalk.json +0 -0
  171. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/elasticfilesystem.json +0 -0
  172. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/elasticloadbalancing.json +0 -0
  173. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/elasticmapreduce.json +0 -0
  174. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/elastictranscoder.json +0 -0
  175. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/elemental-activations.json +0 -0
  176. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/elemental-appliances-software.json +0 -0
  177. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/elemental-support-cases.json +0 -0
  178. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/elemental-support-content.json +0 -0
  179. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/emr-containers.json +0 -0
  180. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/emr-serverless.json +0 -0
  181. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/entityresolution.json +0 -0
  182. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/es.json +0 -0
  183. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/events.json +0 -0
  184. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/evidently.json +0 -0
  185. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/evs.json +0 -0
  186. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/execute-api.json +0 -0
  187. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/finspace-api.json +0 -0
  188. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/finspace.json +0 -0
  189. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/firehose.json +0 -0
  190. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/fis.json +0 -0
  191. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/fms.json +0 -0
  192. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/forecast.json +0 -0
  193. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/frauddetector.json +0 -0
  194. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/freertos.json +0 -0
  195. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/freetier.json +0 -0
  196. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/fsx.json +0 -0
  197. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/gamelift.json +0 -0
  198. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/gameliftstreams.json +0 -0
  199. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/geo-maps.json +0 -0
  200. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/geo-places.json +0 -0
  201. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/geo-routes.json +0 -0
  202. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/geo.json +0 -0
  203. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/glacier.json +0 -0
  204. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/globalaccelerator.json +0 -0
  205. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/glue.json +0 -0
  206. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/grafana.json +0 -0
  207. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/greengrass.json +0 -0
  208. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/groundstation.json +0 -0
  209. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/groundtruthlabeling.json +0 -0
  210. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/guardduty.json +0 -0
  211. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/health.json +0 -0
  212. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/healthlake.json +0 -0
  213. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/honeycode.json +0 -0
  214. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/iam.json +0 -0
  215. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/identity-sync.json +0 -0
  216. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/identitystore-auth.json +0 -0
  217. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/identitystore.json +0 -0
  218. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/imagebuilder.json +0 -0
  219. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/importexport.json +0 -0
  220. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/inspector-scan.json +0 -0
  221. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/inspector.json +0 -0
  222. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/inspector2.json +0 -0
  223. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/internetmonitor.json +0 -0
  224. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/invoicing.json +0 -0
  225. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/iot-device-tester.json +0 -0
  226. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/iot.json +0 -0
  227. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/iotanalytics.json +0 -0
  228. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/iotdeviceadvisor.json +0 -0
  229. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/iotevents.json +0 -0
  230. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/iotfleethub.json +0 -0
  231. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/iotfleetwise.json +0 -0
  232. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/iotjobsdata.json +0 -0
  233. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/iotmanagedintegrations.json +0 -0
  234. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/iotsitewise.json +0 -0
  235. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/iottwinmaker.json +0 -0
  236. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/iotwireless.json +0 -0
  237. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/iq-permission.json +0 -0
  238. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/iq.json +0 -0
  239. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/ivs.json +0 -0
  240. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/ivschat.json +0 -0
  241. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/kafka-cluster.json +0 -0
  242. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/kafka.json +0 -0
  243. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/kafkaconnect.json +0 -0
  244. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/kendra-ranking.json +0 -0
  245. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/kendra.json +0 -0
  246. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/kinesis.json +0 -0
  247. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/kinesisanalytics.json +0 -0
  248. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/kinesisvideo.json +0 -0
  249. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/kms.json +0 -0
  250. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/lakeformation.json +0 -0
  251. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/lambda.json +0 -0
  252. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/launchwizard.json +0 -0
  253. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/lex.json +0 -0
  254. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/license-manager-linux-subscriptions.json +0 -0
  255. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/license-manager-user-subscriptions.json +0 -0
  256. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/license-manager.json +0 -0
  257. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/lightsail.json +0 -0
  258. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/logs.json +0 -0
  259. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/lookoutequipment.json +0 -0
  260. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/lookoutmetrics.json +0 -0
  261. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/lookoutvision.json +0 -0
  262. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/m2.json +0 -0
  263. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/machinelearning.json +0 -0
  264. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/macie2.json +0 -0
  265. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/managedblockchain-query.json +0 -0
  266. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/managedblockchain.json +0 -0
  267. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/mapcredits.json +0 -0
  268. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/marketplacecommerceanalytics.json +0 -0
  269. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/mechanicalturk.json +0 -0
  270. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/mediaconnect.json +0 -0
  271. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/mediaconvert.json +0 -0
  272. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/mediaimport.json +0 -0
  273. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/medialive.json +0 -0
  274. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/mediapackage-vod.json +0 -0
  275. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/mediapackage.json +0 -0
  276. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/mediapackagev2.json +0 -0
  277. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/mediastore.json +0 -0
  278. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/mediatailor.json +0 -0
  279. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/medical-imaging.json +0 -0
  280. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/memorydb.json +0 -0
  281. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/mgh.json +0 -0
  282. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/mgn.json +0 -0
  283. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/migrationhub-orchestrator.json +0 -0
  284. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/migrationhub-strategy.json +0 -0
  285. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/mobileanalytics.json +0 -0
  286. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/mobiletargeting.json +0 -0
  287. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/monitron.json +0 -0
  288. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/mpa.json +0 -0
  289. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/mq.json +0 -0
  290. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/neptune-db.json +0 -0
  291. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/neptune-graph.json +0 -0
  292. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/network-firewall.json +0 -0
  293. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/network-security-director.json +0 -0
  294. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/networkflowmonitor.json +0 -0
  295. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/networkmanager-chat.json +0 -0
  296. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/networkmanager.json +0 -0
  297. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/networkmonitor.json +0 -0
  298. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/nimble.json +0 -0
  299. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/notifications-contacts.json +0 -0
  300. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/notifications.json +0 -0
  301. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/oam.json +0 -0
  302. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/observabilityadmin.json +0 -0
  303. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/odb.json +0 -0
  304. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/omics.json +0 -0
  305. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/one.json +0 -0
  306. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/opensearch.json +0 -0
  307. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/opsworks-cm.json +0 -0
  308. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/opsworks.json +0 -0
  309. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/organizations.json +0 -0
  310. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/osis.json +0 -0
  311. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/outposts.json +0 -0
  312. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/panorama.json +0 -0
  313. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/partnercentral-account-management.json +0 -0
  314. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/partnercentral.json +0 -0
  315. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/payment-cryptography.json +0 -0
  316. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/payments.json +0 -0
  317. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/pca-connector-ad.json +0 -0
  318. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/pca-connector-scep.json +0 -0
  319. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/pcs.json +0 -0
  320. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/personalize.json +0 -0
  321. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/pi.json +0 -0
  322. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/pipes.json +0 -0
  323. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/polly.json +0 -0
  324. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/pricing.json +0 -0
  325. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/private-networks.json +0 -0
  326. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/profile.json +0 -0
  327. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/proton.json +0 -0
  328. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/purchase-orders.json +0 -0
  329. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/q.json +0 -0
  330. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/qapps.json +0 -0
  331. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/qbusiness.json +0 -0
  332. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/qdeveloper.json +0 -0
  333. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/qldb.json +0 -0
  334. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/quicksight.json +0 -0
  335. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/ram.json +0 -0
  336. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/rbin.json +0 -0
  337. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/rds-data.json +0 -0
  338. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/rds-db.json +0 -0
  339. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/rds.json +0 -0
  340. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/redshift-data.json +0 -0
  341. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/redshift-serverless.json +0 -0
  342. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/redshift.json +0 -0
  343. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/refactor-spaces.json +0 -0
  344. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/rekognition.json +0 -0
  345. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/repostspace.json +0 -0
  346. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/resiliencehub.json +0 -0
  347. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/resource-explorer-2.json +0 -0
  348. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/resource-explorer.json +0 -0
  349. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/resource-groups.json +0 -0
  350. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/rhelkb.json +0 -0
  351. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/robomaker.json +0 -0
  352. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/rolesanywhere.json +0 -0
  353. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/route53-recovery-cluster.json +0 -0
  354. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/route53-recovery-control-config.json +0 -0
  355. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/route53-recovery-readiness.json +0 -0
  356. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/route53.json +0 -0
  357. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/route53domains.json +0 -0
  358. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/route53profiles.json +0 -0
  359. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/route53resolver.json +0 -0
  360. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/rtbfabric.json +0 -0
  361. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/rum.json +0 -0
  362. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/s3-object-lambda.json +0 -0
  363. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/s3-outposts.json +0 -0
  364. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/s3.json +0 -0
  365. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/s3express.json +0 -0
  366. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/s3tables.json +0 -0
  367. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/s3vectors.json +0 -0
  368. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/sagemaker-data-science-assistant.json +0 -0
  369. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/sagemaker-geospatial.json +0 -0
  370. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/sagemaker-mlflow.json +0 -0
  371. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/sagemaker.json +0 -0
  372. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/savingsplans.json +0 -0
  373. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/scheduler.json +0 -0
  374. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/schemas.json +0 -0
  375. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/scn.json +0 -0
  376. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/sdb.json +0 -0
  377. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/secretsmanager.json +0 -0
  378. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/security-ir.json +0 -0
  379. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/securityhub.json +0 -0
  380. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/securitylake.json +0 -0
  381. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/serverlessrepo.json +0 -0
  382. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/servicecatalog.json +0 -0
  383. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/servicediscovery.json +0 -0
  384. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/serviceextract.json +0 -0
  385. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/servicequotas.json +0 -0
  386. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/ses.json +0 -0
  387. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/shield.json +0 -0
  388. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/signer.json +0 -0
  389. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/signin.json +0 -0
  390. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/simspaceweaver.json +0 -0
  391. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/sms-voice.json +0 -0
  392. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/sms.json +0 -0
  393. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/snow-device-management.json +0 -0
  394. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/snowball.json +0 -0
  395. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/sns.json +0 -0
  396. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/social-messaging.json +0 -0
  397. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/sqlworkbench.json +0 -0
  398. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/sqs.json +0 -0
  399. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/ssm-contacts.json +0 -0
  400. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/ssm-guiconnect.json +0 -0
  401. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/ssm-incidents.json +0 -0
  402. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/ssm-quicksetup.json +0 -0
  403. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/ssm-sap.json +0 -0
  404. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/ssm.json +0 -0
  405. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/ssmmessages.json +0 -0
  406. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/sso-directory.json +0 -0
  407. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/sso-oauth.json +0 -0
  408. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/sso.json +0 -0
  409. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/states.json +0 -0
  410. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/storagegateway.json +0 -0
  411. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/sts.json +0 -0
  412. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/support-console.json +0 -0
  413. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/support.json +0 -0
  414. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/supportapp.json +0 -0
  415. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/supportplans.json +0 -0
  416. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/sustainability.json +0 -0
  417. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/swf.json +0 -0
  418. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/synthetics.json +0 -0
  419. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/tag.json +0 -0
  420. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/tax.json +0 -0
  421. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/textract.json +0 -0
  422. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/thinclient.json +0 -0
  423. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/timestream-influxdb.json +0 -0
  424. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/timestream.json +0 -0
  425. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/tiros.json +0 -0
  426. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/tnb.json +0 -0
  427. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/transcribe.json +0 -0
  428. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/transfer.json +0 -0
  429. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/transform.json +0 -0
  430. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/translate.json +0 -0
  431. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/trustedadvisor.json +0 -0
  432. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/ts.json +0 -0
  433. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/user-subscriptions.json +0 -0
  434. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/uxc.json +0 -0
  435. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/vendor-insights.json +0 -0
  436. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/verified-access.json +0 -0
  437. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/verifiedpermissions.json +0 -0
  438. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/voiceid.json +0 -0
  439. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/vpc-lattice-svcs.json +0 -0
  440. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/vpc-lattice.json +0 -0
  441. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/vpce.json +0 -0
  442. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/waf-regional.json +0 -0
  443. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/waf.json +0 -0
  444. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/wafv2.json +0 -0
  445. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/wam.json +0 -0
  446. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/wellarchitected.json +0 -0
  447. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/wickr.json +0 -0
  448. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/wisdom.json +0 -0
  449. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/workdocs.json +0 -0
  450. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/worklink.json +0 -0
  451. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/workmail.json +0 -0
  452. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/workmailmessageflow.json +0 -0
  453. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/workspaces-instances.json +0 -0
  454. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/workspaces-web.json +0 -0
  455. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/workspaces.json +0 -0
  456. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/aws_services/xray.json +0 -0
  457. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/docs/README.md +0 -0
  458. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/docs/ROADMAP.md +0 -0
  459. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/docs/SDK.md +0 -0
  460. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/docs/aws-api-configuration.md +0 -0
  461. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/docs/aws-services-backup.md +0 -0
  462. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/docs/check-reference.md +0 -0
  463. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/docs/condition-requirements.md +0 -0
  464. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/docs/configuration.md +0 -0
  465. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/docs/custom-checks.md +0 -0
  466. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/docs/development/PUBLISHING.md +0 -0
  467. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/docs/development/pre-release-guide.md +0 -0
  468. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/docs/github-actions-examples.md +0 -0
  469. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/docs/github-actions-workflows.md +0 -0
  470. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/docs/modular-configuration.md +0 -0
  471. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/docs/privilege-escalation.md +0 -0
  472. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/docs/python-library-usage.md +0 -0
  473. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/docs/query-command.md +0 -0
  474. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/docs/shell-completion.md +0 -0
  475. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/docs/smart-filtering.md +0 -0
  476. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/README.md +0 -0
  477. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/access-analyzer/example1.json +0 -0
  478. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/access-analyzer/example2.json +0 -0
  479. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/configs/README.md +0 -0
  480. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/configs/full-reference-config.yaml +0 -0
  481. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/configs/github-labels-config.yaml +0 -0
  482. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/configs/minimal-validation-config.yaml +0 -0
  483. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/configs/offline-validation.yaml +0 -0
  484. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/configs/policy-level-condition-enforcement-config.yaml +0 -0
  485. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/configs/strict-security.yaml +0 -0
  486. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/custom_checks/README.md +0 -0
  487. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/custom_checks/advanced_multi_condition_validator.py +0 -0
  488. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/custom_checks/cross_account_external_id_check.py +0 -0
  489. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/custom_checks/domain_restriction_check.py +0 -0
  490. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/custom_checks/encryption_required_check.py +0 -0
  491. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/custom_checks/mfa_required_check.py +0 -0
  492. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/custom_checks/region_restriction_check.py +0 -0
  493. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/custom_checks/tag_enforcement_check.py +0 -0
  494. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/custom_checks/time_based_access_check.py +0 -0
  495. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/github-actions/README.md +0 -0
  496. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/github-actions/access-analyzer-only.yaml +0 -0
  497. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/github-actions/basic-validation.yaml +0 -0
  498. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/github-actions/custom-policy-checks.yaml +0 -0
  499. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/github-actions/multi-region-validation.yaml +0 -0
  500. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/github-actions/resource-policy-validation.yaml +0 -0
  501. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/github-actions/sarif-code-scanning.yaml +0 -0
  502. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/github-actions/sequential-validation.yaml +0 -0
  503. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/github-actions/two-step-validation.yaml +0 -0
  504. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/github-actions/validate-changed-files.yaml +0 -0
  505. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/README.md +0 -0
  506. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/allowed-wildcard-resource.json +0 -0
  507. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/api_gateway_management.json +0 -0
  508. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/athena_query_access.json +0 -0
  509. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/backup_vault_access.json +0 -0
  510. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/cloudformation_deployer.json +0 -0
  511. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/cloudwatch_monitoring.json +0 -0
  512. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/cognito_user_pool.json +0 -0
  513. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/dynamodb_table_access.json +0 -0
  514. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/ecs_task_execution.json +0 -0
  515. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/eventbridge_rules.json +0 -0
  516. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/glue_etl_jobs.json +0 -0
  517. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/insecure_policy.json +0 -0
  518. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/insecure_policy.yaml +0 -0
  519. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/invalid-resource-constraint.json +0 -0
  520. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/invalid-sid-special-chars.json +0 -0
  521. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/invalid-sid-with-spaces.json +0 -0
  522. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/invalid_policy.json +0 -0
  523. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/kms_encryption_keys.json +0 -0
  524. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/lambda_developer.json +0 -0
  525. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/lambda_developer.yaml +0 -0
  526. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/maximum_size_policy.json +0 -0
  527. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/policy_missing_required_tags.json +0 -0
  528. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/policy_tag_enforcement_example.json +0 -0
  529. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/policy_with_wildcard_resources.json +0 -0
  530. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/privilege_escalation_scattered.json +0 -0
  531. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/rds_database_admin.json +0 -0
  532. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/s3_bucket_access.yaml +0 -0
  533. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/sample_policy.json +0 -0
  534. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/sample_policy.yaml +0 -0
  535. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/secrets_manager_access.json +0 -0
  536. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/sensitive-action-wildcards.json +0 -0
  537. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/sns_sqs_messaging.json +0 -0
  538. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/step_functions_workflow.json +0 -0
  539. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/terraform-template-policy.json +0 -0
  540. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/test_none_of_valid.json +0 -0
  541. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/test_none_of_violations.json +0 -0
  542. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/valid-sid-formats.json +0 -0
  543. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/wildcard_examples.json +0 -0
  544. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/wildcard_examples.yaml +0 -0
  545. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/wrong-condition-key.json +0 -0
  546. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/identity-policies/wrong-s3-condition.json +0 -0
  547. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-control-policies/rcp-invalid-allow-effect.json +0 -0
  548. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-control-policies/rcp-invalid-not-action.json +0 -0
  549. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-control-policies/rcp-invalid-specific-principal.json +0 -0
  550. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-control-policies/rcp-invalid-unsupported-service.json +0 -0
  551. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-control-policies/rcp-invalid-wildcard-action.json +0 -0
  552. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-control-policies/rcp-valid-enforce-encryption.json +0 -0
  553. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/README.md +0 -0
  554. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/backup-vault-policy-org-access.json +0 -0
  555. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/ecr-repository-policy-org-restricted.json +0 -0
  556. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/ecr-repository-policy-public.json +0 -0
  557. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/efs-filesystem-policy-vpc-only.json +0 -0
  558. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/glacier-vault-policy-cross-account.json +0 -0
  559. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/kms-key-policy-cross-account.json +0 -0
  560. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/kms-key-policy-insecure.json +0 -0
  561. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/kms-key-policy-org-restricted.json +0 -0
  562. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/kms-key-policy-service-specific.json +0 -0
  563. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/lambda-permission-api-gateway.json +0 -0
  564. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/lambda-permission-cross-account-invoke.json +0 -0
  565. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/lambda-permission-eventbridge-multiple.json +0 -0
  566. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/lambda-permission-public-url.json +0 -0
  567. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/lambda-permission-s3-trigger.json +0 -0
  568. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/opensearch-domain-policy-ip-restricted.json +0 -0
  569. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/s3-bucket-policy-cloudfront.json +0 -0
  570. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/s3-bucket-policy-cross-account-org.json +0 -0
  571. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/s3-bucket-policy-insecure-transport.json +0 -0
  572. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/s3-bucket-policy-ip-restriction.json +0 -0
  573. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/s3-bucket-policy-public-with-conditions.json +0 -0
  574. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/s3-bucket-policy-public.json +0 -0
  575. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/s3-bucket-policy-specific-account.json +0 -0
  576. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/s3-bucket-policy-vpc-endpoint.json +0 -0
  577. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/s3-bucket-policy-wildcard-actions.json +0 -0
  578. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/secrets-manager-policy-cross-account.json +0 -0
  579. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/sns-topic-policy-cross-account-mfa.json +0 -0
  580. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/sns-topic-policy-cross-account.json +0 -0
  581. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/sns-topic-policy-eventbridge.json +0 -0
  582. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/sns-topic-policy-org-wide.json +0 -0
  583. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/sns-topic-policy-public-no-conditions.json +0 -0
  584. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/sqs-queue-policy-cross-account-role.json +0 -0
  585. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/sqs-queue-policy-iam-users-mfa.json +0 -0
  586. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/sqs-queue-policy-public.json +0 -0
  587. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/resource-policies/sqs-queue-policy-sns-subscription.json +0 -0
  588. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/service-control-policies/deny-root-account-usage.json +0 -0
  589. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/service-control-policies/require-mfa.json +0 -0
  590. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/service-control-policies/restrict-regions.json +0 -0
  591. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/wrong_actions_mismatch/README.md +0 -0
  592. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/wrong_actions_mismatch/correct-condition-wrong-key.json +0 -0
  593. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/wrong_actions_mismatch/dynamodb-wrong-resources.json +0 -0
  594. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/wrong_actions_mismatch/ec2-wrong-resources.json +0 -0
  595. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/wrong_actions_mismatch/iam-wrong-resources.json +0 -0
  596. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/wrong_actions_mismatch/lambda-wrong-resources.json +0 -0
  597. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/wrong_actions_mismatch/s3-wrong-resources.json +0 -0
  598. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/wrong_actions_mismatch/sqs-sns-wrong-resources.json +0 -0
  599. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/iam-test-policies/wrong_actions_mismatch/typo-condition-field.json +0 -0
  600. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/library-usage/README.md +0 -0
  601. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/library-usage/example1_basic_usage.py +0 -0
  602. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/library-usage/example2_config_file.py +0 -0
  603. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/library-usage/example3_programmatic_config.py +0 -0
  604. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/library-usage/example4_custom_condition_requirements.py +0 -0
  605. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/library-usage/example5_query_aws_services.py +0 -0
  606. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/library-usage/policies/my-policy.json +0 -0
  607. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/library-usage/policies/policy1.json +0 -0
  608. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/library-usage/policies/policy2.json +0 -0
  609. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/query-examples.sh +0 -0
  610. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/quick-start/lambda-policy.json +0 -0
  611. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/quick-start/s3-policy.json +0 -0
  612. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/quick-start/user-policy.json +0 -0
  613. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/trust-policies/INVALID-wrong-principal-type.json +0 -0
  614. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/trust-policies/README.md +0 -0
  615. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/trust-policies/cross-account-trust-policy.json +0 -0
  616. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/trust-policies/github-actions-oidc-trust-policy.json +0 -0
  617. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/trust-policies/lambda-service-role-trust-policy.json +0 -0
  618. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/examples/trust-policies/saml-federated-trust-policy.json +0 -0
  619. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/__init__.py +0 -0
  620. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/__main__.py +0 -0
  621. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/checks/__init__.py +0 -0
  622. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/checks/action_condition_enforcement.py +0 -0
  623. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/checks/action_resource_matching.py +0 -0
  624. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/checks/action_validation.py +0 -0
  625. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/checks/condition_type_mismatch.py +0 -0
  626. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/checks/full_wildcard.py +0 -0
  627. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/checks/mfa_condition_check.py +0 -0
  628. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/checks/policy_size.py +0 -0
  629. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/checks/policy_structure.py +0 -0
  630. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/checks/policy_type_validation.py +0 -0
  631. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/checks/principal_validation.py +0 -0
  632. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/checks/resource_validation.py +0 -0
  633. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/checks/sensitive_action.py +0 -0
  634. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/checks/service_wildcard.py +0 -0
  635. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/checks/set_operator_validation.py +0 -0
  636. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/checks/sid_uniqueness.py +0 -0
  637. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/checks/trust_policy_validation.py +0 -0
  638. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/checks/utils/__init__.py +0 -0
  639. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/checks/utils/action_parser.py +0 -0
  640. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/checks/utils/policy_level_checks.py +0 -0
  641. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/checks/utils/sensitive_action_matcher.py +0 -0
  642. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/checks/utils/wildcard_expansion.py +0 -0
  643. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/checks/wildcard_action.py +0 -0
  644. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/checks/wildcard_resource.py +0 -0
  645. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/commands/__init__.py +0 -0
  646. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/commands/analyze.py +0 -0
  647. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/commands/base.py +0 -0
  648. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/commands/cache.py +0 -0
  649. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/commands/completion.py +0 -0
  650. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/commands/download_services.py +0 -0
  651. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/commands/post_to_pr.py +0 -0
  652. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/commands/query.py +0 -0
  653. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/commands/validate.py +0 -0
  654. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/__init__.py +0 -0
  655. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/access_analyzer.py +0 -0
  656. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/access_analyzer_report.py +0 -0
  657. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/aws_fetcher.py +0 -0
  658. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/aws_service/__init__.py +0 -0
  659. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/aws_service/cache.py +0 -0
  660. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/aws_service/client.py +0 -0
  661. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/aws_service/fetcher.py +0 -0
  662. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/aws_service/parsers.py +0 -0
  663. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/aws_service/patterns.py +0 -0
  664. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/aws_service/storage.py +0 -0
  665. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/check_registry.py +0 -0
  666. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/cli.py +0 -0
  667. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/codeowners.py +0 -0
  668. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/condition_validators.py +0 -0
  669. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/config/__init__.py +0 -0
  670. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/config/aws_api.py +0 -0
  671. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/config/category_suggestions.py +0 -0
  672. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/config/check_documentation.py +0 -0
  673. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/config/condition_requirements.py +0 -0
  674. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/config/config_loader.py +0 -0
  675. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/config/defaults.py +0 -0
  676. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/config/principal_requirements.py +0 -0
  677. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/config/sensitive_actions.py +0 -0
  678. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/config/service_principals.py +0 -0
  679. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/config/wildcards.py +0 -0
  680. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/diff_parser.py +0 -0
  681. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/finding_fingerprint.py +0 -0
  682. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/formatters/__init__.py +0 -0
  683. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/formatters/base.py +0 -0
  684. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/formatters/console.py +0 -0
  685. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/formatters/csv.py +0 -0
  686. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/formatters/enhanced.py +0 -0
  687. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/formatters/html.py +0 -0
  688. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/formatters/json.py +0 -0
  689. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/formatters/markdown.py +0 -0
  690. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/formatters/sarif.py +0 -0
  691. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/ignore_patterns.py +0 -0
  692. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/ignore_processor.py +0 -0
  693. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/ignored_findings.py +0 -0
  694. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/label_manager.py +0 -0
  695. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/models.py +0 -0
  696. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/policy_checks.py +0 -0
  697. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/policy_loader.py +0 -0
  698. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/pr_commenter.py +0 -0
  699. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/core/report.py +0 -0
  700. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/integrations/__init__.py +0 -0
  701. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/integrations/ms_teams.py +0 -0
  702. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/sdk/__init__.py +0 -0
  703. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/sdk/arn_matching.py +0 -0
  704. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/sdk/context.py +0 -0
  705. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/sdk/exceptions.py +0 -0
  706. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/sdk/helpers.py +0 -0
  707. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/sdk/policy_utils.py +0 -0
  708. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/sdk/query_utils.py +0 -0
  709. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/sdk/shortcuts.py +0 -0
  710. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/utils/__init__.py +0 -0
  711. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/utils/cache.py +0 -0
  712. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/utils/regex.py +0 -0
  713. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/iam_validator/utils/terminal.py +0 -0
  714. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/pyproject.toml +0 -0
  715. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/scripts/download_aws_services.py +0 -0
  716. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/scripts/sync_defaults_from_yaml.py +0 -0
  717. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/README.md +0 -0
  718. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/__init__.py +0 -0
  719. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/checks/__init__.py +0 -0
  720. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/checks/test_action_validation_check.py +0 -0
  721. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/checks/test_aws_global_conditions.py +0 -0
  722. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/checks/test_condition_type_mismatch.py +0 -0
  723. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/checks/test_custom_policy_checks.py +0 -0
  724. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/checks/test_full_wildcard_check.py +0 -0
  725. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/checks/test_mfa_condition_check.py +0 -0
  726. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/checks/test_policy_size_check.py +0 -0
  727. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/checks/test_principal_validation_check.py +0 -0
  728. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/checks/test_resource_validation_check.py +0 -0
  729. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/checks/test_sensitive_action_filtering.py +0 -0
  730. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/checks/test_sensitive_action_suggestions.py +0 -0
  731. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/checks/test_sensitive_action_wildcard_expansion.py +0 -0
  732. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/checks/test_service_principal_wildcard.py +0 -0
  733. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/checks/test_service_wildcard_check.py +0 -0
  734. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/checks/test_sid_uniqueness_check.py +0 -0
  735. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/checks/test_wildcard_action_check.py +0 -0
  736. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/checks/test_wildcard_resource_check.py +0 -0
  737. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/commands/__init__.py +0 -0
  738. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/commands/test_completion_command.py +0 -0
  739. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/commands/test_query_command.py +0 -0
  740. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/config/__init__.py +0 -0
  741. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/config/test_config_loader.py +0 -0
  742. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/core/__init__.py +0 -0
  743. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/core/test_action_condition_enforcement.py +0 -0
  744. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/core/test_action_condition_enforcement_policy_level.py +0 -0
  745. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/core/test_action_resource_matching.py +0 -0
  746. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/core/test_aws_api_config.py +0 -0
  747. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/core/test_aws_fetcher_wildcards.py +0 -0
  748. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/core/test_check_id_in_comments.py +0 -0
  749. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/core/test_check_id_injection.py +0 -0
  750. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/core/test_check_registry.py +0 -0
  751. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/core/test_codeowners.py +0 -0
  752. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/core/test_comment_truncation.py +0 -0
  753. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/core/test_diff_parser.py +0 -0
  754. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/core/test_finding_fingerprint.py +0 -0
  755. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/core/test_ignore_patterns.py +0 -0
  756. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/core/test_ignored_findings.py +0 -0
  757. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/core/test_models.py +0 -0
  758. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/core/test_multipart_comments.py +0 -0
  759. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/core/test_policy_loader.py +0 -0
  760. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/core/test_policy_type_validation.py +0 -0
  761. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/core/test_pr_commenter_diff_filtering.py +0 -0
  762. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/core/test_regex_utils.py +0 -0
  763. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/core/test_set_operator_validation.py +0 -0
  764. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/core/test_trust_policy_detection.py +0 -0
  765. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/core/test_trust_policy_multiple_statements.py +0 -0
  766. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/core/test_trust_policy_oidc_aud_required.py +0 -0
  767. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/core/test_trust_policy_validation.py +0 -0
  768. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/integrations/__init__.py +0 -0
  769. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/integrations/test_comment_deduplication.py +0 -0
  770. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/integrations/test_github_pagination.py +0 -0
  771. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/tests/integrations/test_label_manager.py +0 -0
  772. {iam_policy_validator-1.14.2 → iam_policy_validator-1.14.3}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iam-policy-validator
3
- Version: 1.14.2
3
+ Version: 1.14.3
4
4
  Summary: Validate AWS IAM policies for correctness and security using AWS Service Reference API
5
5
  Project-URL: Homepage, https://github.com/boogy/iam-policy-validator
6
6
  Project-URL: Documentation, https://github.com/boogy/iam-policy-validator/tree/main/docs
@@ -3,7 +3,7 @@
3
3
  This file is the single source of truth for the package version.
4
4
  """
5
5
 
6
- __version__ = "1.14.2"
6
+ __version__ = "1.14.3"
7
7
  # Parse version, handling pre-release suffixes like -rc, -alpha, -beta
8
8
  _version_base = __version__.split("-", maxsplit=1)[0] # Remove pre-release suffix if present
9
9
  __version_info__ = tuple(int(part) for part in _version_base.split("."))
@@ -37,7 +37,7 @@ class ConditionKeyValidationCheck(PolicyCheck):
37
37
  resources = statement.get_resources()
38
38
 
39
39
  # Extract all condition keys from all condition operators
40
- for operator, conditions in statement.condition.items():
40
+ for _, conditions in statement.condition.items():
41
41
  for condition_key in conditions.keys():
42
42
  # Validate this condition key against each action in the statement
43
43
  for action in actions:
@@ -5,14 +5,104 @@ including actions, condition keys, and ARN formats.
5
5
  """
6
6
 
7
7
  import logging
8
+ import re
8
9
  from dataclasses import dataclass
9
10
  from typing import Any
10
11
 
11
12
  from iam_validator.core.aws_service.parsers import ServiceParser
13
+ from iam_validator.core.constants import (
14
+ AWS_TAG_KEY_ALLOWED_CHARS,
15
+ AWS_TAG_KEY_MAX_LENGTH,
16
+ AWS_TAG_KEY_PLACEHOLDERS,
17
+ )
12
18
  from iam_validator.core.models import ServiceDetail
13
19
 
14
20
  logger = logging.getLogger(__name__)
15
21
 
22
+ # Pre-compiled regex for AWS tag key validation
23
+ # Uses centralized constants from iam_validator.core.constants
24
+ _TAG_KEY_PATTERN = re.compile(rf"^[{AWS_TAG_KEY_ALLOWED_CHARS}]{{1,{AWS_TAG_KEY_MAX_LENGTH}}}$")
25
+
26
+
27
+ def _is_valid_tag_key(tag_key: str) -> bool:
28
+ """Validate an AWS tag key format.
29
+
30
+ AWS tag keys must:
31
+ - Be 1-128 characters long
32
+ - Contain only: letters, numbers, spaces, and + - = . _ : / @
33
+ - Not be empty
34
+
35
+ Note: The 'aws:' prefix check is not done here as it's for the condition key prefix,
36
+ not the tag key portion (e.g., in 'ssm:resourceTag/owner', 'owner' is the tag key).
37
+
38
+ Args:
39
+ tag_key: The tag key portion to validate
40
+
41
+ Returns:
42
+ True if valid AWS tag key format
43
+ """
44
+ if not tag_key or len(tag_key) > AWS_TAG_KEY_MAX_LENGTH:
45
+ return False
46
+ return bool(_TAG_KEY_PATTERN.match(tag_key))
47
+
48
+
49
+ def _matches_condition_key_pattern(condition_key: str, pattern: str) -> bool:
50
+ """Check if a condition key matches a pattern with tag-key placeholders.
51
+
52
+ AWS service definitions use patterns like:
53
+ - `ssm:resourceTag/tag-key` or `ssm:resourceTag/${TagKey}` to match `ssm:resourceTag/owner`
54
+ - `aws:ResourceTag/${TagKey}` to match `aws:ResourceTag/Environment`
55
+
56
+ Args:
57
+ condition_key: The actual condition key from the policy (e.g., "ssm:resourceTag/owner")
58
+ pattern: The pattern from AWS service definition (e.g., "ssm:resourceTag/tag-key")
59
+
60
+ Returns:
61
+ True if condition_key matches the pattern
62
+ """
63
+ # Exact match (fast path)
64
+ if condition_key == pattern:
65
+ return True
66
+
67
+ # Check for tag-key placeholder patterns
68
+ for tag_placeholder in AWS_TAG_KEY_PLACEHOLDERS:
69
+ if tag_placeholder in pattern:
70
+ # Extract the prefix before the placeholder
71
+ prefix = pattern.split(tag_placeholder, 1)[0]
72
+ prefix_with_slash = prefix + "/"
73
+ # Check if condition_key starts with prefix and has a tag key after it
74
+ if condition_key.startswith(prefix_with_slash):
75
+ # Validate tag key format per AWS constraints
76
+ tag_key = condition_key[len(prefix_with_slash) :]
77
+ if _is_valid_tag_key(tag_key):
78
+ return True
79
+
80
+ return False
81
+
82
+
83
+ def _condition_key_in_list(condition_key: str, condition_keys: list[str]) -> bool:
84
+ """Check if a condition key matches any key in the list, supporting patterns.
85
+
86
+ Args:
87
+ condition_key: The condition key to check
88
+ condition_keys: List of condition keys (may include patterns)
89
+
90
+ Returns:
91
+ True if condition_key matches any entry in the list
92
+ """
93
+ # Fast path: check for exact match first (most common case)
94
+ if condition_key in condition_keys:
95
+ return True
96
+
97
+ # Slower path: check patterns only if no exact match
98
+ for pattern in condition_keys:
99
+ # Skip exact matches (already checked above)
100
+ if pattern == condition_key:
101
+ continue
102
+ if _matches_condition_key_pattern(condition_key, pattern):
103
+ return True
104
+ return False
105
+
16
106
 
17
107
  @dataclass
18
108
  class ConditionKeyValidationResult:
@@ -134,7 +224,7 @@ class ServiceValidator:
134
224
  action: str,
135
225
  condition_key: str,
136
226
  service_detail: ServiceDetail,
137
- resources: list[str] | None = None,
227
+ resources: list[str] | None = None, # pylint: disable=unused-argument - kept for API compatibility
138
228
  ) -> ConditionKeyValidationResult:
139
229
  """Validate condition key against action and optionally resource types.
140
230
 
@@ -173,22 +263,23 @@ class ServiceValidator:
173
263
  error_message=f"Invalid AWS global condition key: `{condition_key}`.",
174
264
  )
175
265
 
176
- # Check service-specific condition keys
177
- if condition_key in service_detail.condition_keys:
266
+ # Check service-specific condition keys (with pattern matching for tag keys)
267
+ if service_detail.condition_keys and _condition_key_in_list(
268
+ condition_key, list(service_detail.condition_keys.keys())
269
+ ):
178
270
  return ConditionKeyValidationResult(is_valid=True)
179
271
 
180
272
  # Check action-specific condition keys
181
273
  if action_name in service_detail.actions:
182
274
  action_detail = service_detail.actions[action_name]
183
- if (
184
- action_detail.action_condition_keys
185
- and condition_key in action_detail.action_condition_keys
275
+ if action_detail.action_condition_keys and _condition_key_in_list(
276
+ condition_key, action_detail.action_condition_keys
186
277
  ):
187
278
  return ConditionKeyValidationResult(is_valid=True)
188
279
 
189
280
  # Check resource-specific condition keys
190
281
  # Get resource types required by this action
191
- if resources and action_detail.resources:
282
+ if action_detail.resources:
192
283
  for res_req in action_detail.resources:
193
284
  resource_name = res_req.get("Name", "")
194
285
  if not resource_name:
@@ -197,7 +288,7 @@ class ServiceValidator:
197
288
  # Look up resource type definition
198
289
  resource_type = service_detail.resources.get(resource_name)
199
290
  if resource_type and resource_type.condition_keys:
200
- if condition_key in resource_type.condition_keys:
291
+ if _condition_key_in_list(condition_key, resource_type.condition_keys):
201
292
  return ConditionKeyValidationResult(is_valid=True)
202
293
 
203
294
  # If it's a global key but the action has specific condition keys defined,
@@ -11,6 +11,8 @@ Last updated: 2025-01-17
11
11
  import re
12
12
  from typing import Any
13
13
 
14
+ from iam_validator.core.constants import AWS_TAG_KEY_ALLOWED_CHARS
15
+
14
16
  # AWS Global Condition Keys with Type Information
15
17
  # These condition keys are available for use in IAM policies across all AWS services
16
18
  # Format: {key: type} where type is one of: String, ARN, Bool, Date, IPAddress, Numeric
@@ -71,17 +73,18 @@ AWS_GLOBAL_CONDITION_KEYS = {
71
73
 
72
74
  # Patterns that should be recognized (wildcards and tag-based keys)
73
75
  # These allow things like aws:RequestTag/Department or aws:PrincipalTag/Environment
76
+ # Uses centralized tag key character class from constants
74
77
  AWS_CONDITION_KEY_PATTERNS = [
75
78
  {
76
- "pattern": r"^aws:RequestTag/[a-zA-Z0-9+\-=._:/@]+$",
79
+ "pattern": rf"^aws:RequestTag/[{AWS_TAG_KEY_ALLOWED_CHARS}]+$",
77
80
  "description": "Tag keys in the request (for tag-based access control)",
78
81
  },
79
82
  {
80
- "pattern": r"^aws:ResourceTag/[a-zA-Z0-9+\-=._:/@]+$",
83
+ "pattern": rf"^aws:ResourceTag/[{AWS_TAG_KEY_ALLOWED_CHARS}]+$",
81
84
  "description": "Tags on the resource being accessed",
82
85
  },
83
86
  {
84
- "pattern": r"^aws:PrincipalTag/[a-zA-Z0-9+\-=._:/@]+$",
87
+ "pattern": rf"^aws:PrincipalTag/[{AWS_TAG_KEY_ALLOWED_CHARS}]+$",
85
88
  "description": "Tags attached to the principal making the request",
86
89
  },
87
90
  ]
@@ -154,7 +157,8 @@ _global_conditions_instance = None
154
157
 
155
158
  def get_global_conditions() -> AWSGlobalConditions:
156
159
  """Get singleton instance of AWSGlobalConditions."""
157
- global _global_conditions_instance
160
+ global _global_conditions_instance # pylint: disable=global-statement
161
+
158
162
  if _global_conditions_instance is None:
159
163
  _global_conditions_instance = AWSGlobalConditions()
160
164
  return _global_conditions_instance
@@ -147,3 +147,32 @@ RCP_SUPPORTED_SERVICES = frozenset(
147
147
 
148
148
  # AWS Service Authorization Reference (for finding valid actions, resources, and condition keys)
149
149
  AWS_SERVICE_AUTH_REF_URL = "https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html"
150
+
151
+ # ============================================================================
152
+ # AWS Tag Constraints
153
+ # ============================================================================
154
+ # Reference: https://docs.aws.amazon.com/tag-editor/latest/userguide/best-practices-and-strats.html
155
+
156
+ # --- Tag Key Constraints ---
157
+ # Allowed characters in AWS tag keys: letters, numbers, spaces, and + - = . _ : / @
158
+ # This is the character class for use in regex patterns
159
+ AWS_TAG_KEY_ALLOWED_CHARS = r"a-zA-Z0-9 +\-=._:/@"
160
+
161
+ # Maximum length for AWS tag keys (per AWS documentation)
162
+ AWS_TAG_KEY_MAX_LENGTH = 128
163
+
164
+ # Tag-key placeholder patterns used in AWS service definitions
165
+ # These patterns indicate where a tag key should be substituted
166
+ AWS_TAG_KEY_PLACEHOLDERS = ("/tag-key", "/${TagKey}", "/${tag-key}")
167
+
168
+ # --- Tag Value Constraints ---
169
+ # Allowed characters in AWS tag values: letters, numbers, spaces, and + - = . _ : / @
170
+ # Same character set as tag keys
171
+ AWS_TAG_VALUE_ALLOWED_CHARS = r"a-zA-Z0-9 +\-=._:/@"
172
+
173
+ # Maximum length for AWS tag values (per AWS documentation)
174
+ # Note: Tag values can be empty (minimum 0), unlike keys which must have at least 1 char
175
+ AWS_TAG_VALUE_MAX_LENGTH = 256
176
+
177
+ # Minimum length for AWS tag values (can be empty)
178
+ AWS_TAG_VALUE_MIN_LENGTH = 0
@@ -34,7 +34,7 @@ class GitHubRateLimitError(Exception):
34
34
  class GitHubRetryableError(Exception):
35
35
  """Raised for transient GitHub API errors that should be retried."""
36
36
 
37
- pass
37
+ pass # pylint: disable=unnecessary-pass
38
38
 
39
39
 
40
40
  # Retry configuration
@@ -449,3 +449,198 @@ class TestConditionKeyValidationCheck:
449
449
  "arn:aws:s3:us-east-1:123456789012:accesspoint/my-access-point",
450
450
  ],
451
451
  )
452
+
453
+
454
+ class TestConditionKeyPatternMatching:
455
+ """Test pattern matching for service-specific condition keys like ssm:resourceTag/tag-key."""
456
+
457
+ @pytest.mark.asyncio
458
+ async def test_ssm_resource_tag_pattern_matching(self):
459
+ """Test that ssm:resourceTag/owner matches ssm:resourceTag/tag-key pattern."""
460
+ from iam_validator.core.aws_service.validators import _matches_condition_key_pattern
461
+
462
+ # These should match the ssm:resourceTag/tag-key pattern
463
+ assert _matches_condition_key_pattern("ssm:resourceTag/owner", "ssm:resourceTag/tag-key")
464
+ assert _matches_condition_key_pattern(
465
+ "ssm:resourceTag/Environment", "ssm:resourceTag/tag-key"
466
+ )
467
+ assert _matches_condition_key_pattern(
468
+ "ssm:resourceTag/CostCenter", "ssm:resourceTag/tag-key"
469
+ )
470
+
471
+ # Exact match should also work
472
+ assert _matches_condition_key_pattern("ssm:Overwrite", "ssm:Overwrite")
473
+
474
+ # Non-matching patterns should fail
475
+ assert not _matches_condition_key_pattern("ssm:resourceTag/owner", "ssm:Overwrite")
476
+ assert not _matches_condition_key_pattern("ssm:invalid", "ssm:resourceTag/tag-key")
477
+
478
+ @pytest.mark.asyncio
479
+ async def test_aws_tag_pattern_matching(self):
480
+ """Test that aws:ResourceTag/owner matches aws:ResourceTag/${TagKey} pattern."""
481
+ from iam_validator.core.aws_service.validators import _matches_condition_key_pattern
482
+
483
+ # These should match the ${TagKey} pattern
484
+ assert _matches_condition_key_pattern(
485
+ "aws:ResourceTag/owner", "aws:ResourceTag/${TagKey}"
486
+ )
487
+ assert _matches_condition_key_pattern(
488
+ "aws:RequestTag/Department", "aws:RequestTag/${TagKey}"
489
+ )
490
+
491
+ @pytest.mark.asyncio
492
+ async def test_condition_key_in_list(self):
493
+ """Test _condition_key_in_list helper function."""
494
+ from iam_validator.core.aws_service.validators import _condition_key_in_list
495
+
496
+ condition_keys = [
497
+ "aws:ResourceTag/${TagKey}",
498
+ "ssm:resourceTag/tag-key",
499
+ "ssm:Overwrite",
500
+ "ssm:Policies",
501
+ ]
502
+
503
+ # Should match pattern-based keys
504
+ assert _condition_key_in_list("ssm:resourceTag/owner", condition_keys)
505
+ assert _condition_key_in_list("aws:ResourceTag/Environment", condition_keys)
506
+
507
+ # Should match exact keys
508
+ assert _condition_key_in_list("ssm:Overwrite", condition_keys)
509
+ assert _condition_key_in_list("ssm:Policies", condition_keys)
510
+
511
+ # Should not match invalid keys
512
+ assert not _condition_key_in_list("ssm:InvalidKey", condition_keys)
513
+ assert not _condition_key_in_list("invalid:key", condition_keys)
514
+
515
+ @pytest.mark.asyncio
516
+ async def test_ssm_put_parameter_with_resource_tag(self):
517
+ """Integration test: ssm:resourceTag/owner should be valid for ssm:PutParameter."""
518
+ from iam_validator.core.aws_service import AWSServiceFetcher
519
+
520
+ async with AWSServiceFetcher() as fetcher:
521
+ # Test that ssm:resourceTag/owner is now valid for ssm:PutParameter
522
+ result = await fetcher.validate_condition_key(
523
+ "ssm:PutParameter",
524
+ "ssm:resourceTag/owner",
525
+ ["arn:aws:ssm:us-east-1:123456789012:parameter/test"],
526
+ )
527
+
528
+ assert result.is_valid is True
529
+ assert result.error_message is None
530
+
531
+ @pytest.mark.asyncio
532
+ async def test_invalid_ssm_condition_key(self):
533
+ """Integration test: invalid condition keys should still be rejected."""
534
+ from iam_validator.core.aws_service import AWSServiceFetcher
535
+
536
+ async with AWSServiceFetcher() as fetcher:
537
+ # Test that truly invalid keys are still rejected
538
+ result = await fetcher.validate_condition_key(
539
+ "ssm:PutParameter",
540
+ "ssm:completelyInvalidKey",
541
+ ["arn:aws:ssm:us-east-1:123456789012:parameter/test"],
542
+ )
543
+
544
+ assert result.is_valid is False
545
+ assert result.error_message is not None
546
+
547
+
548
+ class TestTagKeyValidation:
549
+ """Test AWS tag key format validation."""
550
+
551
+ def test_valid_tag_keys(self):
552
+ """Test that valid AWS tag keys are accepted."""
553
+ from iam_validator.core.aws_service.validators import _is_valid_tag_key
554
+
555
+ # Standard alphanumeric tag keys
556
+ assert _is_valid_tag_key("owner")
557
+ assert _is_valid_tag_key("Environment")
558
+ assert _is_valid_tag_key("CostCenter")
559
+ assert _is_valid_tag_key("Project123")
560
+
561
+ # Tag keys with allowed special characters
562
+ assert _is_valid_tag_key("cost-center")
563
+ assert _is_valid_tag_key("project_name")
564
+ assert _is_valid_tag_key("env.type")
565
+ assert _is_valid_tag_key("team:backend")
566
+ assert _is_valid_tag_key("path/to/resource")
567
+ assert _is_valid_tag_key("email@domain")
568
+ assert _is_valid_tag_key("key+value")
569
+ assert _is_valid_tag_key("key=value")
570
+
571
+ # Tag keys with spaces (allowed by AWS)
572
+ assert _is_valid_tag_key("Cost Center")
573
+ assert _is_valid_tag_key("Project Name")
574
+
575
+ # Mixed special characters
576
+ assert _is_valid_tag_key("my-project_v2.0:prod/main@team+alpha")
577
+
578
+ def test_invalid_tag_keys(self):
579
+ """Test that invalid AWS tag keys are rejected."""
580
+ from iam_validator.core.aws_service.validators import _is_valid_tag_key
581
+
582
+ # Empty tag key
583
+ assert not _is_valid_tag_key("")
584
+
585
+ # Tag keys with invalid characters
586
+ assert not _is_valid_tag_key("key<value")
587
+ assert not _is_valid_tag_key("key>value")
588
+ assert not _is_valid_tag_key("key&value")
589
+ assert not _is_valid_tag_key("key|value")
590
+ assert not _is_valid_tag_key("key\\value")
591
+ assert not _is_valid_tag_key("key*value")
592
+ assert not _is_valid_tag_key("key?value")
593
+ assert not _is_valid_tag_key("key#value")
594
+ assert not _is_valid_tag_key("key$value")
595
+ assert not _is_valid_tag_key("key%value")
596
+ assert not _is_valid_tag_key("key^value")
597
+ assert not _is_valid_tag_key("key!value")
598
+ assert not _is_valid_tag_key("key`value")
599
+ assert not _is_valid_tag_key("key~value")
600
+ assert not _is_valid_tag_key("key(value)")
601
+ assert not _is_valid_tag_key("key[value]")
602
+ assert not _is_valid_tag_key("key{value}")
603
+ assert not _is_valid_tag_key('key"value')
604
+ assert not _is_valid_tag_key("key'value")
605
+
606
+ def test_tag_key_length_limits(self):
607
+ """Test AWS tag key length constraints (1-128 characters)."""
608
+ from iam_validator.core.aws_service.validators import _is_valid_tag_key
609
+
610
+ # Minimum length (1 character)
611
+ assert _is_valid_tag_key("a")
612
+
613
+ # Maximum length (128 characters)
614
+ assert _is_valid_tag_key("a" * 128)
615
+
616
+ # Over maximum length (129 characters)
617
+ assert not _is_valid_tag_key("a" * 129)
618
+
619
+ # Way over maximum
620
+ assert not _is_valid_tag_key("a" * 500)
621
+
622
+ def test_pattern_matching_rejects_invalid_tag_keys(self):
623
+ """Test that pattern matching rejects condition keys with invalid tag key formats."""
624
+ from iam_validator.core.aws_service.validators import _matches_condition_key_pattern
625
+
626
+ # Invalid characters in tag key portion should not match
627
+ assert not _matches_condition_key_pattern(
628
+ "ssm:resourceTag/invalid<tag", "ssm:resourceTag/tag-key"
629
+ )
630
+ assert not _matches_condition_key_pattern(
631
+ "aws:ResourceTag/bad*key", "aws:ResourceTag/${TagKey}"
632
+ )
633
+ assert not _matches_condition_key_pattern(
634
+ "ssm:resourceTag/has#hash", "ssm:resourceTag/tag-key"
635
+ )
636
+
637
+ # Empty tag key should not match
638
+ assert not _matches_condition_key_pattern(
639
+ "ssm:resourceTag/", "ssm:resourceTag/tag-key"
640
+ )
641
+
642
+ # Tag key exceeding 128 characters should not match
643
+ long_tag_key = "a" * 129
644
+ assert not _matches_condition_key_pattern(
645
+ f"ssm:resourceTag/{long_tag_key}", "ssm:resourceTag/tag-key"
646
+ )