iam-policy-validator 1.14.3__tar.gz → 1.14.4__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.3 → iam_policy_validator-1.14.4}/PKG-INFO +1 -1
  2. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/__version__.py +1 -1
  3. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/pr_commenter.py +58 -3
  4. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/report.py +117 -7
  5. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/core/test_multipart_comments.py +126 -1
  6. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/core/test_pr_commenter_diff_filtering.py +160 -0
  7. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/.github/dependabot.yml +0 -0
  8. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/.github/workflows/ci.yml +0 -0
  9. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/.github/workflows/cleanup-prereleases.yml +0 -0
  10. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/.github/workflows/codeql.yml +0 -0
  11. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/.github/workflows/pre-release.yml +0 -0
  12. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/.github/workflows/release.yml +0 -0
  13. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/.github/workflows/scorecard.yml +0 -0
  14. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/.gitignore +0 -0
  15. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/.python-version +0 -0
  16. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/CONTRIBUTING.md +0 -0
  17. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/DOCS.md +0 -0
  18. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/LICENSE +0 -0
  19. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/Makefile +0 -0
  20. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/README.md +0 -0
  21. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/SECURITY.md +0 -0
  22. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/action.yaml +0 -0
  23. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/_manifest.json +0 -0
  24. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/_services.json +0 -0
  25. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/a2c.json +0 -0
  26. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/a4b.json +0 -0
  27. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/access-analyzer.json +0 -0
  28. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/account.json +0 -0
  29. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/acm-pca.json +0 -0
  30. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/acm.json +0 -0
  31. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/action-recommendations.json +0 -0
  32. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/activate.json +0 -0
  33. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/aiops.json +0 -0
  34. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/airflow.json +0 -0
  35. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/amplify.json +0 -0
  36. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/amplifybackend.json +0 -0
  37. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/amplifyuibuilder.json +0 -0
  38. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/aoss.json +0 -0
  39. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/apigateway.json +0 -0
  40. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/app-integrations.json +0 -0
  41. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/appconfig.json +0 -0
  42. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/appfabric.json +0 -0
  43. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/appflow.json +0 -0
  44. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/application-autoscaling.json +0 -0
  45. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/application-signals.json +0 -0
  46. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/application-transformation.json +0 -0
  47. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/applicationinsights.json +0 -0
  48. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/appmesh-preview.json +0 -0
  49. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/appmesh.json +0 -0
  50. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/apprunner.json +0 -0
  51. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/appstream.json +0 -0
  52. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/appstudio.json +0 -0
  53. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/appsync.json +0 -0
  54. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/apptest.json +0 -0
  55. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/aps.json +0 -0
  56. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/arc-region-switch.json +0 -0
  57. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/arc-zonal-shift.json +0 -0
  58. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/arsenal.json +0 -0
  59. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/artifact.json +0 -0
  60. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/athena.json +0 -0
  61. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/auditmanager.json +0 -0
  62. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/autoscaling-plans.json +0 -0
  63. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/autoscaling.json +0 -0
  64. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/aws-marketplace-management.json +0 -0
  65. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/aws-marketplace.json +0 -0
  66. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/aws-portal.json +0 -0
  67. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/awsconnector.json +0 -0
  68. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/b2bi.json +0 -0
  69. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/backup-gateway.json +0 -0
  70. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/backup-search.json +0 -0
  71. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/backup-storage.json +0 -0
  72. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/backup.json +0 -0
  73. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/batch.json +0 -0
  74. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/bcm-dashboards.json +0 -0
  75. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/bcm-data-exports.json +0 -0
  76. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/bcm-pricing-calculator.json +0 -0
  77. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/bcm-recommended-actions.json +0 -0
  78. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/bedrock-agentcore.json +0 -0
  79. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/bedrock.json +0 -0
  80. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/billing.json +0 -0
  81. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/billingconductor.json +0 -0
  82. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/braket.json +0 -0
  83. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/budgets.json +0 -0
  84. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/bugbust.json +0 -0
  85. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/cases.json +0 -0
  86. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/cassandra.json +0 -0
  87. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/ce.json +0 -0
  88. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/chatbot.json +0 -0
  89. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/chime.json +0 -0
  90. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/cleanrooms-ml.json +0 -0
  91. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/cleanrooms.json +0 -0
  92. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/cloud9.json +0 -0
  93. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/clouddirectory.json +0 -0
  94. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/cloudformation.json +0 -0
  95. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/cloudfront-keyvaluestore.json +0 -0
  96. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/cloudfront.json +0 -0
  97. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/cloudhsm.json +0 -0
  98. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/cloudsearch.json +0 -0
  99. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/cloudshell.json +0 -0
  100. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/cloudtrail-data.json +0 -0
  101. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/cloudtrail.json +0 -0
  102. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/cloudwatch.json +0 -0
  103. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/codeartifact.json +0 -0
  104. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/codebuild.json +0 -0
  105. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/codecatalyst.json +0 -0
  106. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/codecommit.json +0 -0
  107. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/codeconnections.json +0 -0
  108. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/codedeploy-commands-secure.json +0 -0
  109. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/codedeploy.json +0 -0
  110. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/codeguru-profiler.json +0 -0
  111. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/codeguru-reviewer.json +0 -0
  112. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/codeguru-security.json +0 -0
  113. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/codeguru.json +0 -0
  114. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/codepipeline.json +0 -0
  115. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/codestar-connections.json +0 -0
  116. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/codestar-notifications.json +0 -0
  117. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/codestar.json +0 -0
  118. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/codewhisperer.json +0 -0
  119. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/cognito-identity.json +0 -0
  120. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/cognito-idp.json +0 -0
  121. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/cognito-sync.json +0 -0
  122. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/comprehend.json +0 -0
  123. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/comprehendmedical.json +0 -0
  124. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/compute-optimizer.json +0 -0
  125. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/config.json +0 -0
  126. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/connect-campaigns.json +0 -0
  127. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/connect.json +0 -0
  128. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/consoleapp.json +0 -0
  129. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/consolidatedbilling.json +0 -0
  130. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/controlcatalog.json +0 -0
  131. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/controltower.json +0 -0
  132. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/cost-optimization-hub.json +0 -0
  133. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/cur.json +0 -0
  134. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/customer-verification.json +0 -0
  135. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/databrew.json +0 -0
  136. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/dataexchange.json +0 -0
  137. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/datapipeline.json +0 -0
  138. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/datasync.json +0 -0
  139. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/datazone.json +0 -0
  140. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/dax.json +0 -0
  141. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/dbqms.json +0 -0
  142. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/deadline.json +0 -0
  143. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/deepcomposer.json +0 -0
  144. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/deepracer.json +0 -0
  145. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/detective.json +0 -0
  146. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/devicefarm.json +0 -0
  147. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/devops-guru.json +0 -0
  148. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/directconnect.json +0 -0
  149. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/discovery.json +0 -0
  150. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/dlm.json +0 -0
  151. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/dms.json +0 -0
  152. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/docdb-elastic.json +0 -0
  153. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/drs.json +0 -0
  154. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/ds-data.json +0 -0
  155. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/ds.json +0 -0
  156. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/dsql.json +0 -0
  157. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/dynamodb.json +0 -0
  158. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/ebs.json +0 -0
  159. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/ec2-instance-connect.json +0 -0
  160. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/ec2.json +0 -0
  161. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/ec2messages.json +0 -0
  162. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/ecr-public.json +0 -0
  163. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/ecr.json +0 -0
  164. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/ecs.json +0 -0
  165. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/eks-auth.json +0 -0
  166. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/eks.json +0 -0
  167. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/elasticache.json +0 -0
  168. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/elasticbeanstalk.json +0 -0
  169. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/elasticfilesystem.json +0 -0
  170. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/elasticloadbalancing.json +0 -0
  171. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/elasticmapreduce.json +0 -0
  172. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/elastictranscoder.json +0 -0
  173. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/elemental-activations.json +0 -0
  174. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/elemental-appliances-software.json +0 -0
  175. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/elemental-support-cases.json +0 -0
  176. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/elemental-support-content.json +0 -0
  177. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/emr-containers.json +0 -0
  178. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/emr-serverless.json +0 -0
  179. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/entityresolution.json +0 -0
  180. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/es.json +0 -0
  181. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/events.json +0 -0
  182. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/evidently.json +0 -0
  183. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/evs.json +0 -0
  184. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/execute-api.json +0 -0
  185. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/finspace-api.json +0 -0
  186. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/finspace.json +0 -0
  187. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/firehose.json +0 -0
  188. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/fis.json +0 -0
  189. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/fms.json +0 -0
  190. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/forecast.json +0 -0
  191. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/frauddetector.json +0 -0
  192. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/freertos.json +0 -0
  193. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/freetier.json +0 -0
  194. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/fsx.json +0 -0
  195. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/gamelift.json +0 -0
  196. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/gameliftstreams.json +0 -0
  197. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/geo-maps.json +0 -0
  198. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/geo-places.json +0 -0
  199. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/geo-routes.json +0 -0
  200. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/geo.json +0 -0
  201. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/glacier.json +0 -0
  202. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/globalaccelerator.json +0 -0
  203. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/glue.json +0 -0
  204. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/grafana.json +0 -0
  205. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/greengrass.json +0 -0
  206. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/groundstation.json +0 -0
  207. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/groundtruthlabeling.json +0 -0
  208. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/guardduty.json +0 -0
  209. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/health.json +0 -0
  210. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/healthlake.json +0 -0
  211. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/honeycode.json +0 -0
  212. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/iam.json +0 -0
  213. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/identity-sync.json +0 -0
  214. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/identitystore-auth.json +0 -0
  215. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/identitystore.json +0 -0
  216. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/imagebuilder.json +0 -0
  217. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/importexport.json +0 -0
  218. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/inspector-scan.json +0 -0
  219. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/inspector.json +0 -0
  220. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/inspector2.json +0 -0
  221. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/internetmonitor.json +0 -0
  222. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/invoicing.json +0 -0
  223. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/iot-device-tester.json +0 -0
  224. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/iot.json +0 -0
  225. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/iotanalytics.json +0 -0
  226. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/iotdeviceadvisor.json +0 -0
  227. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/iotevents.json +0 -0
  228. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/iotfleethub.json +0 -0
  229. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/iotfleetwise.json +0 -0
  230. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/iotjobsdata.json +0 -0
  231. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/iotmanagedintegrations.json +0 -0
  232. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/iotsitewise.json +0 -0
  233. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/iottwinmaker.json +0 -0
  234. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/iotwireless.json +0 -0
  235. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/iq-permission.json +0 -0
  236. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/iq.json +0 -0
  237. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/ivs.json +0 -0
  238. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/ivschat.json +0 -0
  239. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/kafka-cluster.json +0 -0
  240. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/kafka.json +0 -0
  241. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/kafkaconnect.json +0 -0
  242. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/kendra-ranking.json +0 -0
  243. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/kendra.json +0 -0
  244. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/kinesis.json +0 -0
  245. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/kinesisanalytics.json +0 -0
  246. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/kinesisvideo.json +0 -0
  247. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/kms.json +0 -0
  248. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/lakeformation.json +0 -0
  249. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/lambda.json +0 -0
  250. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/launchwizard.json +0 -0
  251. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/lex.json +0 -0
  252. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/license-manager-linux-subscriptions.json +0 -0
  253. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/license-manager-user-subscriptions.json +0 -0
  254. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/license-manager.json +0 -0
  255. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/lightsail.json +0 -0
  256. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/logs.json +0 -0
  257. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/lookoutequipment.json +0 -0
  258. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/lookoutmetrics.json +0 -0
  259. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/lookoutvision.json +0 -0
  260. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/m2.json +0 -0
  261. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/machinelearning.json +0 -0
  262. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/macie2.json +0 -0
  263. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/managedblockchain-query.json +0 -0
  264. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/managedblockchain.json +0 -0
  265. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/mapcredits.json +0 -0
  266. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/marketplacecommerceanalytics.json +0 -0
  267. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/mechanicalturk.json +0 -0
  268. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/mediaconnect.json +0 -0
  269. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/mediaconvert.json +0 -0
  270. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/mediaimport.json +0 -0
  271. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/medialive.json +0 -0
  272. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/mediapackage-vod.json +0 -0
  273. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/mediapackage.json +0 -0
  274. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/mediapackagev2.json +0 -0
  275. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/mediastore.json +0 -0
  276. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/mediatailor.json +0 -0
  277. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/medical-imaging.json +0 -0
  278. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/memorydb.json +0 -0
  279. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/mgh.json +0 -0
  280. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/mgn.json +0 -0
  281. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/migrationhub-orchestrator.json +0 -0
  282. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/migrationhub-strategy.json +0 -0
  283. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/mobileanalytics.json +0 -0
  284. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/mobiletargeting.json +0 -0
  285. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/monitron.json +0 -0
  286. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/mpa.json +0 -0
  287. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/mq.json +0 -0
  288. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/neptune-db.json +0 -0
  289. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/neptune-graph.json +0 -0
  290. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/network-firewall.json +0 -0
  291. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/network-security-director.json +0 -0
  292. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/networkflowmonitor.json +0 -0
  293. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/networkmanager-chat.json +0 -0
  294. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/networkmanager.json +0 -0
  295. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/networkmonitor.json +0 -0
  296. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/nimble.json +0 -0
  297. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/notifications-contacts.json +0 -0
  298. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/notifications.json +0 -0
  299. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/oam.json +0 -0
  300. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/observabilityadmin.json +0 -0
  301. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/odb.json +0 -0
  302. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/omics.json +0 -0
  303. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/one.json +0 -0
  304. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/opensearch.json +0 -0
  305. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/opsworks-cm.json +0 -0
  306. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/opsworks.json +0 -0
  307. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/organizations.json +0 -0
  308. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/osis.json +0 -0
  309. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/outposts.json +0 -0
  310. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/panorama.json +0 -0
  311. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/partnercentral-account-management.json +0 -0
  312. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/partnercentral.json +0 -0
  313. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/payment-cryptography.json +0 -0
  314. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/payments.json +0 -0
  315. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/pca-connector-ad.json +0 -0
  316. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/pca-connector-scep.json +0 -0
  317. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/pcs.json +0 -0
  318. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/personalize.json +0 -0
  319. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/pi.json +0 -0
  320. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/pipes.json +0 -0
  321. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/polly.json +0 -0
  322. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/pricing.json +0 -0
  323. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/private-networks.json +0 -0
  324. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/profile.json +0 -0
  325. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/proton.json +0 -0
  326. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/purchase-orders.json +0 -0
  327. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/q.json +0 -0
  328. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/qapps.json +0 -0
  329. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/qbusiness.json +0 -0
  330. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/qdeveloper.json +0 -0
  331. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/qldb.json +0 -0
  332. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/quicksight.json +0 -0
  333. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/ram.json +0 -0
  334. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/rbin.json +0 -0
  335. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/rds-data.json +0 -0
  336. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/rds-db.json +0 -0
  337. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/rds.json +0 -0
  338. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/redshift-data.json +0 -0
  339. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/redshift-serverless.json +0 -0
  340. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/redshift.json +0 -0
  341. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/refactor-spaces.json +0 -0
  342. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/rekognition.json +0 -0
  343. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/repostspace.json +0 -0
  344. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/resiliencehub.json +0 -0
  345. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/resource-explorer-2.json +0 -0
  346. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/resource-explorer.json +0 -0
  347. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/resource-groups.json +0 -0
  348. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/rhelkb.json +0 -0
  349. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/robomaker.json +0 -0
  350. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/rolesanywhere.json +0 -0
  351. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/route53-recovery-cluster.json +0 -0
  352. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/route53-recovery-control-config.json +0 -0
  353. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/route53-recovery-readiness.json +0 -0
  354. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/route53.json +0 -0
  355. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/route53domains.json +0 -0
  356. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/route53profiles.json +0 -0
  357. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/route53resolver.json +0 -0
  358. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/rtbfabric.json +0 -0
  359. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/rum.json +0 -0
  360. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/s3-object-lambda.json +0 -0
  361. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/s3-outposts.json +0 -0
  362. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/s3.json +0 -0
  363. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/s3express.json +0 -0
  364. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/s3tables.json +0 -0
  365. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/s3vectors.json +0 -0
  366. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/sagemaker-data-science-assistant.json +0 -0
  367. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/sagemaker-geospatial.json +0 -0
  368. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/sagemaker-mlflow.json +0 -0
  369. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/sagemaker.json +0 -0
  370. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/savingsplans.json +0 -0
  371. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/scheduler.json +0 -0
  372. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/schemas.json +0 -0
  373. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/scn.json +0 -0
  374. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/sdb.json +0 -0
  375. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/secretsmanager.json +0 -0
  376. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/security-ir.json +0 -0
  377. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/securityhub.json +0 -0
  378. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/securitylake.json +0 -0
  379. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/serverlessrepo.json +0 -0
  380. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/servicecatalog.json +0 -0
  381. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/servicediscovery.json +0 -0
  382. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/serviceextract.json +0 -0
  383. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/servicequotas.json +0 -0
  384. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/ses.json +0 -0
  385. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/shield.json +0 -0
  386. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/signer.json +0 -0
  387. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/signin.json +0 -0
  388. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/simspaceweaver.json +0 -0
  389. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/sms-voice.json +0 -0
  390. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/sms.json +0 -0
  391. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/snow-device-management.json +0 -0
  392. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/snowball.json +0 -0
  393. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/sns.json +0 -0
  394. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/social-messaging.json +0 -0
  395. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/sqlworkbench.json +0 -0
  396. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/sqs.json +0 -0
  397. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/ssm-contacts.json +0 -0
  398. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/ssm-guiconnect.json +0 -0
  399. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/ssm-incidents.json +0 -0
  400. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/ssm-quicksetup.json +0 -0
  401. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/ssm-sap.json +0 -0
  402. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/ssm.json +0 -0
  403. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/ssmmessages.json +0 -0
  404. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/sso-directory.json +0 -0
  405. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/sso-oauth.json +0 -0
  406. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/sso.json +0 -0
  407. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/states.json +0 -0
  408. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/storagegateway.json +0 -0
  409. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/sts.json +0 -0
  410. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/support-console.json +0 -0
  411. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/support.json +0 -0
  412. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/supportapp.json +0 -0
  413. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/supportplans.json +0 -0
  414. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/sustainability.json +0 -0
  415. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/swf.json +0 -0
  416. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/synthetics.json +0 -0
  417. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/tag.json +0 -0
  418. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/tax.json +0 -0
  419. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/textract.json +0 -0
  420. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/thinclient.json +0 -0
  421. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/timestream-influxdb.json +0 -0
  422. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/timestream.json +0 -0
  423. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/tiros.json +0 -0
  424. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/tnb.json +0 -0
  425. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/transcribe.json +0 -0
  426. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/transfer.json +0 -0
  427. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/transform.json +0 -0
  428. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/translate.json +0 -0
  429. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/trustedadvisor.json +0 -0
  430. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/ts.json +0 -0
  431. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/user-subscriptions.json +0 -0
  432. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/uxc.json +0 -0
  433. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/vendor-insights.json +0 -0
  434. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/verified-access.json +0 -0
  435. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/verifiedpermissions.json +0 -0
  436. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/voiceid.json +0 -0
  437. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/vpc-lattice-svcs.json +0 -0
  438. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/vpc-lattice.json +0 -0
  439. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/vpce.json +0 -0
  440. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/waf-regional.json +0 -0
  441. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/waf.json +0 -0
  442. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/wafv2.json +0 -0
  443. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/wam.json +0 -0
  444. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/wellarchitected.json +0 -0
  445. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/wickr.json +0 -0
  446. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/wisdom.json +0 -0
  447. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/workdocs.json +0 -0
  448. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/worklink.json +0 -0
  449. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/workmail.json +0 -0
  450. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/workmailmessageflow.json +0 -0
  451. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/workspaces-instances.json +0 -0
  452. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/workspaces-web.json +0 -0
  453. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/workspaces.json +0 -0
  454. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/aws_services/xray.json +0 -0
  455. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/docs/README.md +0 -0
  456. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/docs/ROADMAP.md +0 -0
  457. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/docs/SDK.md +0 -0
  458. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/docs/aws-api-configuration.md +0 -0
  459. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/docs/aws-services-backup.md +0 -0
  460. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/docs/check-reference.md +0 -0
  461. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/docs/condition-requirements.md +0 -0
  462. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/docs/configuration.md +0 -0
  463. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/docs/custom-checks.md +0 -0
  464. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/docs/development/PUBLISHING.md +0 -0
  465. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/docs/development/pre-release-guide.md +0 -0
  466. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/docs/github-actions-examples.md +0 -0
  467. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/docs/github-actions-workflows.md +0 -0
  468. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/docs/modular-configuration.md +0 -0
  469. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/docs/privilege-escalation.md +0 -0
  470. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/docs/python-library-usage.md +0 -0
  471. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/docs/query-command.md +0 -0
  472. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/docs/shell-completion.md +0 -0
  473. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/docs/smart-filtering.md +0 -0
  474. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/README.md +0 -0
  475. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/access-analyzer/example1.json +0 -0
  476. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/access-analyzer/example2.json +0 -0
  477. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/configs/README.md +0 -0
  478. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/configs/full-reference-config.yaml +0 -0
  479. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/configs/github-labels-config.yaml +0 -0
  480. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/configs/minimal-validation-config.yaml +0 -0
  481. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/configs/offline-validation.yaml +0 -0
  482. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/configs/policy-level-condition-enforcement-config.yaml +0 -0
  483. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/configs/strict-security.yaml +0 -0
  484. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/custom_checks/README.md +0 -0
  485. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/custom_checks/advanced_multi_condition_validator.py +0 -0
  486. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/custom_checks/cross_account_external_id_check.py +0 -0
  487. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/custom_checks/domain_restriction_check.py +0 -0
  488. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/custom_checks/encryption_required_check.py +0 -0
  489. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/custom_checks/mfa_required_check.py +0 -0
  490. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/custom_checks/region_restriction_check.py +0 -0
  491. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/custom_checks/tag_enforcement_check.py +0 -0
  492. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/custom_checks/time_based_access_check.py +0 -0
  493. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/github-actions/README.md +0 -0
  494. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/github-actions/access-analyzer-only.yaml +0 -0
  495. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/github-actions/basic-validation.yaml +0 -0
  496. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/github-actions/custom-policy-checks.yaml +0 -0
  497. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/github-actions/multi-region-validation.yaml +0 -0
  498. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/github-actions/resource-policy-validation.yaml +0 -0
  499. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/github-actions/sarif-code-scanning.yaml +0 -0
  500. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/github-actions/sequential-validation.yaml +0 -0
  501. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/github-actions/two-step-validation.yaml +0 -0
  502. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/github-actions/validate-changed-files.yaml +0 -0
  503. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/README.md +0 -0
  504. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/allowed-wildcard-resource.json +0 -0
  505. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/api_gateway_management.json +0 -0
  506. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/athena_query_access.json +0 -0
  507. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/backup_vault_access.json +0 -0
  508. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/cloudformation_deployer.json +0 -0
  509. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/cloudwatch_monitoring.json +0 -0
  510. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/cognito_user_pool.json +0 -0
  511. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/dynamodb_table_access.json +0 -0
  512. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/ecs_task_execution.json +0 -0
  513. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/eventbridge_rules.json +0 -0
  514. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/glue_etl_jobs.json +0 -0
  515. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/insecure_policy.json +0 -0
  516. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/insecure_policy.yaml +0 -0
  517. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/invalid-resource-constraint.json +0 -0
  518. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/invalid-sid-special-chars.json +0 -0
  519. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/invalid-sid-with-spaces.json +0 -0
  520. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/invalid_policy.json +0 -0
  521. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/kms_encryption_keys.json +0 -0
  522. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/lambda_developer.json +0 -0
  523. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/lambda_developer.yaml +0 -0
  524. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/maximum_size_policy.json +0 -0
  525. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/policy_missing_required_tags.json +0 -0
  526. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/policy_tag_enforcement_example.json +0 -0
  527. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/policy_with_wildcard_resources.json +0 -0
  528. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/privilege_escalation_scattered.json +0 -0
  529. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/rds_database_admin.json +0 -0
  530. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/s3_bucket_access.yaml +0 -0
  531. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/sample_policy.json +0 -0
  532. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/sample_policy.yaml +0 -0
  533. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/secrets_manager_access.json +0 -0
  534. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/sensitive-action-wildcards.json +0 -0
  535. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/sns_sqs_messaging.json +0 -0
  536. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/step_functions_workflow.json +0 -0
  537. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/terraform-template-policy.json +0 -0
  538. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/test_none_of_valid.json +0 -0
  539. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/test_none_of_violations.json +0 -0
  540. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/valid-sid-formats.json +0 -0
  541. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/wildcard_examples.json +0 -0
  542. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/wildcard_examples.yaml +0 -0
  543. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/wrong-condition-key.json +0 -0
  544. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/identity-policies/wrong-s3-condition.json +0 -0
  545. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-control-policies/rcp-invalid-allow-effect.json +0 -0
  546. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-control-policies/rcp-invalid-not-action.json +0 -0
  547. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-control-policies/rcp-invalid-specific-principal.json +0 -0
  548. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-control-policies/rcp-invalid-unsupported-service.json +0 -0
  549. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-control-policies/rcp-invalid-wildcard-action.json +0 -0
  550. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-control-policies/rcp-valid-enforce-encryption.json +0 -0
  551. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/README.md +0 -0
  552. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/backup-vault-policy-org-access.json +0 -0
  553. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/ecr-repository-policy-org-restricted.json +0 -0
  554. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/ecr-repository-policy-public.json +0 -0
  555. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/efs-filesystem-policy-vpc-only.json +0 -0
  556. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/glacier-vault-policy-cross-account.json +0 -0
  557. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/kms-key-policy-cross-account.json +0 -0
  558. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/kms-key-policy-insecure.json +0 -0
  559. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/kms-key-policy-org-restricted.json +0 -0
  560. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/kms-key-policy-service-specific.json +0 -0
  561. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/lambda-permission-api-gateway.json +0 -0
  562. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/lambda-permission-cross-account-invoke.json +0 -0
  563. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/lambda-permission-eventbridge-multiple.json +0 -0
  564. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/lambda-permission-public-url.json +0 -0
  565. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/lambda-permission-s3-trigger.json +0 -0
  566. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/opensearch-domain-policy-ip-restricted.json +0 -0
  567. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/s3-bucket-policy-cloudfront.json +0 -0
  568. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/s3-bucket-policy-cross-account-org.json +0 -0
  569. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/s3-bucket-policy-insecure-transport.json +0 -0
  570. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/s3-bucket-policy-ip-restriction.json +0 -0
  571. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/s3-bucket-policy-public-with-conditions.json +0 -0
  572. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/s3-bucket-policy-public.json +0 -0
  573. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/s3-bucket-policy-specific-account.json +0 -0
  574. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/s3-bucket-policy-vpc-endpoint.json +0 -0
  575. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/s3-bucket-policy-wildcard-actions.json +0 -0
  576. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/secrets-manager-policy-cross-account.json +0 -0
  577. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/sns-topic-policy-cross-account-mfa.json +0 -0
  578. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/sns-topic-policy-cross-account.json +0 -0
  579. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/sns-topic-policy-eventbridge.json +0 -0
  580. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/sns-topic-policy-org-wide.json +0 -0
  581. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/sns-topic-policy-public-no-conditions.json +0 -0
  582. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/sqs-queue-policy-cross-account-role.json +0 -0
  583. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/sqs-queue-policy-iam-users-mfa.json +0 -0
  584. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/sqs-queue-policy-public.json +0 -0
  585. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/resource-policies/sqs-queue-policy-sns-subscription.json +0 -0
  586. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/service-control-policies/deny-root-account-usage.json +0 -0
  587. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/service-control-policies/require-mfa.json +0 -0
  588. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/service-control-policies/restrict-regions.json +0 -0
  589. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/wrong_actions_mismatch/README.md +0 -0
  590. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/wrong_actions_mismatch/correct-condition-wrong-key.json +0 -0
  591. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/wrong_actions_mismatch/dynamodb-wrong-resources.json +0 -0
  592. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/wrong_actions_mismatch/ec2-wrong-resources.json +0 -0
  593. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/wrong_actions_mismatch/iam-wrong-resources.json +0 -0
  594. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/wrong_actions_mismatch/lambda-wrong-resources.json +0 -0
  595. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/wrong_actions_mismatch/s3-wrong-resources.json +0 -0
  596. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/wrong_actions_mismatch/sqs-sns-wrong-resources.json +0 -0
  597. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/iam-test-policies/wrong_actions_mismatch/typo-condition-field.json +0 -0
  598. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/library-usage/README.md +0 -0
  599. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/library-usage/example1_basic_usage.py +0 -0
  600. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/library-usage/example2_config_file.py +0 -0
  601. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/library-usage/example3_programmatic_config.py +0 -0
  602. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/library-usage/example4_custom_condition_requirements.py +0 -0
  603. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/library-usage/example5_query_aws_services.py +0 -0
  604. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/library-usage/policies/my-policy.json +0 -0
  605. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/library-usage/policies/policy1.json +0 -0
  606. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/library-usage/policies/policy2.json +0 -0
  607. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/query-examples.sh +0 -0
  608. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/quick-start/lambda-policy.json +0 -0
  609. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/quick-start/s3-policy.json +0 -0
  610. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/quick-start/user-policy.json +0 -0
  611. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/trust-policies/INVALID-wrong-principal-type.json +0 -0
  612. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/trust-policies/README.md +0 -0
  613. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/trust-policies/cross-account-trust-policy.json +0 -0
  614. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/trust-policies/github-actions-oidc-trust-policy.json +0 -0
  615. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/trust-policies/lambda-service-role-trust-policy.json +0 -0
  616. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/examples/trust-policies/saml-federated-trust-policy.json +0 -0
  617. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/__init__.py +0 -0
  618. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/__main__.py +0 -0
  619. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/checks/__init__.py +0 -0
  620. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/checks/action_condition_enforcement.py +0 -0
  621. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/checks/action_resource_matching.py +0 -0
  622. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/checks/action_validation.py +0 -0
  623. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/checks/condition_key_validation.py +0 -0
  624. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/checks/condition_type_mismatch.py +0 -0
  625. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/checks/full_wildcard.py +0 -0
  626. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/checks/mfa_condition_check.py +0 -0
  627. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/checks/policy_size.py +0 -0
  628. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/checks/policy_structure.py +0 -0
  629. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/checks/policy_type_validation.py +0 -0
  630. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/checks/principal_validation.py +0 -0
  631. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/checks/resource_validation.py +0 -0
  632. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/checks/sensitive_action.py +0 -0
  633. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/checks/service_wildcard.py +0 -0
  634. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/checks/set_operator_validation.py +0 -0
  635. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/checks/sid_uniqueness.py +0 -0
  636. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/checks/trust_policy_validation.py +0 -0
  637. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/checks/utils/__init__.py +0 -0
  638. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/checks/utils/action_parser.py +0 -0
  639. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/checks/utils/policy_level_checks.py +0 -0
  640. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/checks/utils/sensitive_action_matcher.py +0 -0
  641. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/checks/utils/wildcard_expansion.py +0 -0
  642. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/checks/wildcard_action.py +0 -0
  643. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/checks/wildcard_resource.py +0 -0
  644. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/commands/__init__.py +0 -0
  645. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/commands/analyze.py +0 -0
  646. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/commands/base.py +0 -0
  647. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/commands/cache.py +0 -0
  648. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/commands/completion.py +0 -0
  649. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/commands/download_services.py +0 -0
  650. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/commands/post_to_pr.py +0 -0
  651. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/commands/query.py +0 -0
  652. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/commands/validate.py +0 -0
  653. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/__init__.py +0 -0
  654. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/access_analyzer.py +0 -0
  655. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/access_analyzer_report.py +0 -0
  656. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/aws_fetcher.py +0 -0
  657. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/aws_service/__init__.py +0 -0
  658. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/aws_service/cache.py +0 -0
  659. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/aws_service/client.py +0 -0
  660. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/aws_service/fetcher.py +0 -0
  661. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/aws_service/parsers.py +0 -0
  662. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/aws_service/patterns.py +0 -0
  663. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/aws_service/storage.py +0 -0
  664. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/aws_service/validators.py +0 -0
  665. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/check_registry.py +0 -0
  666. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/cli.py +0 -0
  667. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/codeowners.py +0 -0
  668. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/condition_validators.py +0 -0
  669. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/config/__init__.py +0 -0
  670. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/config/aws_api.py +0 -0
  671. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/config/aws_global_conditions.py +0 -0
  672. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/config/category_suggestions.py +0 -0
  673. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/config/check_documentation.py +0 -0
  674. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/config/condition_requirements.py +0 -0
  675. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/config/config_loader.py +0 -0
  676. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/config/defaults.py +0 -0
  677. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/config/principal_requirements.py +0 -0
  678. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/config/sensitive_actions.py +0 -0
  679. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/config/service_principals.py +0 -0
  680. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/config/wildcards.py +0 -0
  681. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/constants.py +0 -0
  682. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/diff_parser.py +0 -0
  683. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/finding_fingerprint.py +0 -0
  684. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/formatters/__init__.py +0 -0
  685. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/formatters/base.py +0 -0
  686. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/formatters/console.py +0 -0
  687. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/formatters/csv.py +0 -0
  688. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/formatters/enhanced.py +0 -0
  689. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/formatters/html.py +0 -0
  690. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/formatters/json.py +0 -0
  691. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/formatters/markdown.py +0 -0
  692. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/formatters/sarif.py +0 -0
  693. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/ignore_patterns.py +0 -0
  694. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/ignore_processor.py +0 -0
  695. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/ignored_findings.py +0 -0
  696. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/label_manager.py +0 -0
  697. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/models.py +0 -0
  698. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/policy_checks.py +0 -0
  699. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/core/policy_loader.py +0 -0
  700. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/integrations/__init__.py +0 -0
  701. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/integrations/github_integration.py +0 -0
  702. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/integrations/ms_teams.py +0 -0
  703. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/sdk/__init__.py +0 -0
  704. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/sdk/arn_matching.py +0 -0
  705. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/sdk/context.py +0 -0
  706. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/sdk/exceptions.py +0 -0
  707. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/sdk/helpers.py +0 -0
  708. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/sdk/policy_utils.py +0 -0
  709. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/sdk/query_utils.py +0 -0
  710. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/sdk/shortcuts.py +0 -0
  711. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/utils/__init__.py +0 -0
  712. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/utils/cache.py +0 -0
  713. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/utils/regex.py +0 -0
  714. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/iam_validator/utils/terminal.py +0 -0
  715. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/pyproject.toml +0 -0
  716. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/scripts/download_aws_services.py +0 -0
  717. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/scripts/sync_defaults_from_yaml.py +0 -0
  718. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/README.md +0 -0
  719. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/__init__.py +0 -0
  720. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/checks/__init__.py +0 -0
  721. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/checks/test_action_validation_check.py +0 -0
  722. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/checks/test_aws_global_conditions.py +0 -0
  723. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/checks/test_condition_key_validation_check.py +0 -0
  724. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/checks/test_condition_type_mismatch.py +0 -0
  725. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/checks/test_custom_policy_checks.py +0 -0
  726. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/checks/test_full_wildcard_check.py +0 -0
  727. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/checks/test_mfa_condition_check.py +0 -0
  728. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/checks/test_policy_size_check.py +0 -0
  729. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/checks/test_principal_validation_check.py +0 -0
  730. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/checks/test_resource_validation_check.py +0 -0
  731. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/checks/test_sensitive_action_filtering.py +0 -0
  732. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/checks/test_sensitive_action_suggestions.py +0 -0
  733. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/checks/test_sensitive_action_wildcard_expansion.py +0 -0
  734. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/checks/test_service_principal_wildcard.py +0 -0
  735. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/checks/test_service_wildcard_check.py +0 -0
  736. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/checks/test_sid_uniqueness_check.py +0 -0
  737. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/checks/test_wildcard_action_check.py +0 -0
  738. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/checks/test_wildcard_resource_check.py +0 -0
  739. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/commands/__init__.py +0 -0
  740. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/commands/test_completion_command.py +0 -0
  741. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/commands/test_query_command.py +0 -0
  742. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/config/__init__.py +0 -0
  743. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/config/test_config_loader.py +0 -0
  744. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/core/__init__.py +0 -0
  745. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/core/test_action_condition_enforcement.py +0 -0
  746. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/core/test_action_condition_enforcement_policy_level.py +0 -0
  747. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/core/test_action_resource_matching.py +0 -0
  748. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/core/test_aws_api_config.py +0 -0
  749. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/core/test_aws_fetcher_wildcards.py +0 -0
  750. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/core/test_check_id_in_comments.py +0 -0
  751. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/core/test_check_id_injection.py +0 -0
  752. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/core/test_check_registry.py +0 -0
  753. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/core/test_codeowners.py +0 -0
  754. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/core/test_comment_truncation.py +0 -0
  755. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/core/test_diff_parser.py +0 -0
  756. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/core/test_finding_fingerprint.py +0 -0
  757. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/core/test_ignore_patterns.py +0 -0
  758. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/core/test_ignored_findings.py +0 -0
  759. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/core/test_models.py +0 -0
  760. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/core/test_policy_loader.py +0 -0
  761. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/core/test_policy_type_validation.py +0 -0
  762. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/core/test_regex_utils.py +0 -0
  763. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/core/test_set_operator_validation.py +0 -0
  764. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/core/test_trust_policy_detection.py +0 -0
  765. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/core/test_trust_policy_multiple_statements.py +0 -0
  766. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/core/test_trust_policy_oidc_aud_required.py +0 -0
  767. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/core/test_trust_policy_validation.py +0 -0
  768. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/integrations/__init__.py +0 -0
  769. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/integrations/test_comment_deduplication.py +0 -0
  770. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/integrations/test_github_pagination.py +0 -0
  771. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/tests/integrations/test_label_manager.py +0 -0
  772. {iam_policy_validator-1.14.3 → iam_policy_validator-1.14.4}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iam-policy-validator
3
- Version: 1.14.3
3
+ Version: 1.14.4
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.3"
6
+ __version__ = "1.14.4"
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("."))
@@ -17,7 +17,7 @@ from iam_validator.core.diff_parser import DiffParser
17
17
  from iam_validator.core.label_manager import LabelManager
18
18
  from iam_validator.core.models import ValidationIssue, ValidationReport
19
19
  from iam_validator.core.policy_loader import PolicyLineMap, PolicyLoader
20
- from iam_validator.core.report import ReportGenerator
20
+ from iam_validator.core.report import IgnoredFindingInfo, ReportGenerator
21
21
  from iam_validator.integrations.github_integration import GitHubIntegration, ReviewEvent
22
22
 
23
23
  logger = logging.getLogger(__name__)
@@ -96,6 +96,8 @@ class PRCommenter:
96
96
  self._context_issues: list[ContextIssue] = []
97
97
  # Track ignored finding IDs for the current run
98
98
  self._ignored_finding_ids: frozenset[str] = frozenset()
99
+ # Store full ignored findings for display in summary
100
+ self._ignored_findings: dict[str, Any] = {}
99
101
  # Cache for PolicyLineMap per file (for field-level line detection)
100
102
  self._policy_line_maps: dict[str, PolicyLineMap] = {}
101
103
 
@@ -155,8 +157,28 @@ class PRCommenter:
155
157
  generator = ReportGenerator()
156
158
  # Pass ignored count to show in summary
157
159
  ignored_count = len(self._ignored_finding_ids) if self._ignored_finding_ids else 0
160
+
161
+ # Convert ignored findings to IgnoredFindingInfo for display
162
+ ignored_findings_info: list[IgnoredFindingInfo] = []
163
+ if self._ignored_findings:
164
+ for finding in self._ignored_findings.values():
165
+ ignored_findings_info.append(
166
+ IgnoredFindingInfo(
167
+ file_path=finding.file_path,
168
+ issue_type=finding.issue_type,
169
+ ignored_by=finding.ignored_by,
170
+ reason=finding.reason,
171
+ )
172
+ )
173
+
174
+ # Determine if all blocking issues are ignored
175
+ all_blocking_ignored = self._are_all_blocking_issues_ignored(report)
176
+
158
177
  comment_parts = generator.generate_github_comment_parts(
159
- report, ignored_count=ignored_count
178
+ report,
179
+ ignored_count=ignored_count,
180
+ ignored_findings=ignored_findings_info if ignored_findings_info else None,
181
+ all_blocking_ignored=all_blocking_ignored,
160
182
  )
161
183
 
162
184
  # Post all parts using the multipart method
@@ -694,7 +716,10 @@ class PRCommenter:
694
716
  )
695
717
 
696
718
  store = IgnoredFindingsStore(self.github)
697
- self._ignored_finding_ids = await store.get_ignored_ids()
719
+ # Load full ignored findings for display in summary
720
+ self._ignored_findings = await store.load()
721
+ # Also get just the IDs for fast lookup
722
+ self._ignored_finding_ids = frozenset(self._ignored_findings.keys())
698
723
  if self._ignored_finding_ids:
699
724
  logger.debug(f"Loaded {len(self._ignored_finding_ids)} ignored finding(s)")
700
725
 
@@ -718,6 +743,36 @@ class PRCommenter:
718
743
  fingerprint = FindingFingerprint.from_issue(issue, file_path)
719
744
  return fingerprint.to_hash() in self._ignored_finding_ids
720
745
 
746
+ def _are_all_blocking_issues_ignored(self, report: ValidationReport) -> bool:
747
+ """Check if all blocking issues (based on fail_on_severities) are ignored.
748
+
749
+ Args:
750
+ report: The validation report
751
+
752
+ Returns:
753
+ True if there are no unignored blocking issues (i.e., all blocking
754
+ issues have been ignored, or there were no blocking issues to begin with)
755
+ """
756
+ if not self._ignored_finding_ids:
757
+ # No ignored findings - check if there are any blocking issues at all
758
+ for result in report.results:
759
+ for issue in result.issues:
760
+ if issue.severity in self.fail_on_severities:
761
+ return False
762
+ return True
763
+
764
+ # Check each blocking issue to see if it's ignored
765
+ for result in report.results:
766
+ relative_path = self._make_relative_path(result.policy_file)
767
+ if not relative_path:
768
+ continue
769
+ for issue in result.issues:
770
+ if issue.severity in self.fail_on_severities:
771
+ if not self._is_issue_ignored(issue, relative_path):
772
+ return False
773
+
774
+ return True
775
+
721
776
 
722
777
  async def post_report_to_pr(
723
778
  report_file: str,
@@ -5,6 +5,7 @@ including console output, JSON, and GitHub-flavored markdown for PR comments.
5
5
  """
6
6
 
7
7
  import logging
8
+ from dataclasses import dataclass
8
9
 
9
10
  from rich.console import Console
10
11
  from rich.panel import Panel
@@ -29,6 +30,24 @@ from iam_validator.core.models import (
29
30
  ValidationReport,
30
31
  )
31
32
 
33
+
34
+ @dataclass
35
+ class IgnoredFindingInfo:
36
+ """Information about an ignored finding for display in summary.
37
+
38
+ Attributes:
39
+ file_path: Path to the policy file
40
+ issue_type: Type of issue (e.g., "invalid_action")
41
+ ignored_by: Username who ignored the finding
42
+ reason: Optional reason provided by the user
43
+ """
44
+
45
+ file_path: str
46
+ issue_type: str
47
+ ignored_by: str
48
+ reason: str | None = None
49
+
50
+
32
51
  logger = logging.getLogger(__name__)
33
52
 
34
53
 
@@ -239,6 +258,8 @@ class ReportGenerator:
239
258
  report: ValidationReport,
240
259
  max_length_per_part: int = constants.GITHUB_COMMENT_SPLIT_LIMIT,
241
260
  ignored_count: int = 0,
261
+ ignored_findings: list[IgnoredFindingInfo] | None = None,
262
+ all_blocking_ignored: bool = False,
242
263
  ) -> list[str]:
243
264
  """Generate GitHub PR comment(s), splitting into multiple parts if needed.
244
265
 
@@ -246,6 +267,8 @@ class ReportGenerator:
246
267
  report: Validation report
247
268
  max_length_per_part: Maximum character length per comment part (default from GITHUB_COMMENT_SPLIT_LIMIT)
248
269
  ignored_count: Number of findings that were ignored (will be shown in summary)
270
+ ignored_findings: List of ignored finding details for display in summary
271
+ all_blocking_ignored: True if all blocking issues were ignored (shows "Passed" status)
249
272
 
250
273
  Returns:
251
274
  List of comment parts (each under max_length_per_part)
@@ -257,13 +280,19 @@ class ReportGenerator:
257
280
  if estimated_size <= max_length_per_part:
258
281
  # Try single comment
259
282
  single_comment = self.generate_github_comment(
260
- report, max_length=max_length_per_part * 2, ignored_count=ignored_count
283
+ report,
284
+ max_length=max_length_per_part * 2,
285
+ ignored_count=ignored_count,
286
+ ignored_findings=ignored_findings,
287
+ all_blocking_ignored=all_blocking_ignored,
261
288
  )
262
289
  if len(single_comment) <= max_length_per_part:
263
290
  return [single_comment]
264
291
 
265
292
  # Need to split into multiple parts
266
- return self._generate_split_comments(report, max_length_per_part, ignored_count)
293
+ return self._generate_split_comments(
294
+ report, max_length_per_part, ignored_count, ignored_findings, all_blocking_ignored
295
+ )
267
296
 
268
297
  def _estimate_report_size(self, report: ValidationReport) -> int:
269
298
  """Estimate the size of the report in characters.
@@ -280,7 +309,12 @@ class ReportGenerator:
280
309
  )
281
310
 
282
311
  def _generate_split_comments(
283
- self, report: ValidationReport, max_length: int, ignored_count: int = 0
312
+ self,
313
+ report: ValidationReport,
314
+ max_length: int,
315
+ ignored_count: int = 0,
316
+ ignored_findings: list[IgnoredFindingInfo] | None = None,
317
+ all_blocking_ignored: bool = False,
284
318
  ) -> list[str]:
285
319
  """Split a large report into multiple comment parts.
286
320
 
@@ -288,6 +322,8 @@ class ReportGenerator:
288
322
  report: Validation report
289
323
  max_length: Maximum length per part
290
324
  ignored_count: Number of ignored findings to show in summary
325
+ ignored_findings: List of ignored finding details for display
326
+ all_blocking_ignored: True if all blocking issues were ignored
291
327
 
292
328
  Returns:
293
329
  List of comment parts
@@ -295,7 +331,9 @@ class ReportGenerator:
295
331
  parts: list[str] = []
296
332
 
297
333
  # Generate header (will be in first part only)
298
- header_lines = self._generate_header(report, ignored_count)
334
+ header_lines = self._generate_header(
335
+ report, ignored_count, ignored_findings, all_blocking_ignored
336
+ )
299
337
  header_content = "\n".join(header_lines)
300
338
 
301
339
  # Generate footer (will be in all parts)
@@ -388,17 +426,27 @@ class ReportGenerator:
388
426
 
389
427
  return parts
390
428
 
391
- def _generate_header(self, report: ValidationReport, ignored_count: int = 0) -> list[str]:
429
+ def _generate_header(
430
+ self,
431
+ report: ValidationReport,
432
+ ignored_count: int = 0,
433
+ ignored_findings: list[IgnoredFindingInfo] | None = None,
434
+ all_blocking_ignored: bool = False,
435
+ ) -> list[str]:
392
436
  """Generate the comment header with summary.
393
437
 
394
438
  Args:
395
439
  report: Validation report
396
440
  ignored_count: Number of findings that were ignored
441
+ ignored_findings: List of ignored finding details for display
442
+ all_blocking_ignored: True if all blocking issues were ignored (shows "Passed" status)
397
443
  """
398
444
  lines = []
399
445
 
400
446
  # Title with emoji and status badge
401
- if report.invalid_policies == 0:
447
+ # Pass if: no invalid policies, OR all blocking issues were ignored
448
+ is_passing = report.invalid_policies == 0 or all_blocking_ignored
449
+ if is_passing:
402
450
  lines.append("# 🎉 IAM Policy Validation Passed!")
403
451
  status_badge = (
404
452
  "![Status](https://img.shields.io/badge/status-passed-success?style=flat-square)"
@@ -456,6 +504,56 @@ class ReportGenerator:
456
504
  lines.append(f"| 🔵 **Info** | {infos} |")
457
505
  lines.append("")
458
506
 
507
+ # Ignored findings section
508
+ if ignored_findings:
509
+ lines.extend(self._generate_ignored_findings_section(ignored_findings))
510
+
511
+ return lines
512
+
513
+ def _generate_ignored_findings_section(
514
+ self, ignored_findings: list[IgnoredFindingInfo]
515
+ ) -> list[str]:
516
+ """Generate the ignored findings section for the summary comment.
517
+
518
+ Args:
519
+ ignored_findings: List of ignored finding details
520
+
521
+ Returns:
522
+ List of markdown lines for the section
523
+ """
524
+ lines = []
525
+ lines.append("### 🔕 Ignored Findings")
526
+ lines.append("")
527
+ lines.append(
528
+ "> The following findings were ignored by authorized users and are excluded from validation:"
529
+ )
530
+ lines.append("")
531
+
532
+ lines.append("<details>")
533
+ lines.append(f"<summary>View {len(ignored_findings)} ignored finding(s)</summary>")
534
+ lines.append("")
535
+
536
+ lines.append("| File | Issue Type | Ignored By | Reason |")
537
+ lines.append("|------|------------|------------|--------|")
538
+
539
+ for finding in ignored_findings:
540
+ # Truncate file path if too long
541
+ file_display = finding.file_path
542
+ if len(file_display) > 50:
543
+ file_display = "..." + file_display[-47:]
544
+
545
+ reason_display = finding.reason if finding.reason else "-"
546
+ if len(reason_display) > 30:
547
+ reason_display = reason_display[:27] + "..."
548
+
549
+ lines.append(
550
+ f"| `{file_display}` | `{finding.issue_type}` | @{finding.ignored_by} | {reason_display} |"
551
+ )
552
+
553
+ lines.append("")
554
+ lines.append("</details>")
555
+ lines.append("")
556
+
459
557
  return lines
460
558
 
461
559
  def _generate_footer(self) -> str:
@@ -540,6 +638,8 @@ class ReportGenerator:
540
638
  report: ValidationReport,
541
639
  max_length: int = constants.GITHUB_MAX_COMMENT_LENGTH,
542
640
  ignored_count: int = 0,
641
+ ignored_findings: list[IgnoredFindingInfo] | None = None,
642
+ all_blocking_ignored: bool = False,
543
643
  ) -> str:
544
644
  """Generate a GitHub-flavored markdown comment for PR reviews.
545
645
 
@@ -547,6 +647,8 @@ class ReportGenerator:
547
647
  report: Validation report
548
648
  max_length: Maximum character length (default from GITHUB_MAX_COMMENT_LENGTH constant)
549
649
  ignored_count: Number of findings that were ignored (will be shown in summary)
650
+ ignored_findings: List of ignored finding details for display in summary
651
+ all_blocking_ignored: True if all blocking issues were ignored (shows "Passed" status)
550
652
 
551
653
  Returns:
552
654
  Markdown formatted string
@@ -554,8 +656,12 @@ class ReportGenerator:
554
656
  lines = []
555
657
 
556
658
  # Header with emoji and status badge
659
+ # Pass if: no invalid policies, OR all blocking issues were ignored
557
660
  has_parsing_errors = len(report.parsing_errors) > 0
558
- if report.invalid_policies == 0 and not has_parsing_errors:
661
+ is_passing = (
662
+ report.invalid_policies == 0 or all_blocking_ignored
663
+ ) and not has_parsing_errors
664
+ if is_passing:
559
665
  lines.append("# 🎉 IAM Policy Validation Passed!")
560
666
  status_badge = (
561
667
  "![Status](https://img.shields.io/badge/status-passed-success?style=flat-square)"
@@ -613,6 +719,10 @@ class ReportGenerator:
613
719
  lines.append(f"| 🔵 **Info** | {infos} |")
614
720
  lines.append("")
615
721
 
722
+ # Ignored findings section
723
+ if ignored_findings:
724
+ lines.extend(self._generate_ignored_findings_section(ignored_findings))
725
+
616
726
  # Parsing errors section (if any)
617
727
  if report.parsing_errors:
618
728
  lines.append("### ⚠️ Parsing Errors")
@@ -3,7 +3,7 @@
3
3
  import pytest
4
4
 
5
5
  from iam_validator.core.models import PolicyValidationResult, ValidationIssue
6
- from iam_validator.core.report import ReportGenerator
6
+ from iam_validator.core.report import IgnoredFindingInfo, ReportGenerator
7
7
 
8
8
 
9
9
  def create_large_issue(severity: str, index: int) -> ValidationIssue:
@@ -235,5 +235,130 @@ def test_empty_report_single_part():
235
235
  assert "Part 1" not in parts[0]
236
236
 
237
237
 
238
+ def test_ignored_findings_displayed_in_summary():
239
+ """Test that ignored findings are displayed in the summary comment."""
240
+ generator = ReportGenerator()
241
+
242
+ results = [create_large_result("policy-1.json", 2)]
243
+ report = generator.generate_report(results)
244
+
245
+ ignored_findings = [
246
+ IgnoredFindingInfo(
247
+ file_path="policy-1.json",
248
+ issue_type="TEST_ISSUE",
249
+ ignored_by="testuser",
250
+ reason="Approved by security team",
251
+ ),
252
+ IgnoredFindingInfo(
253
+ file_path="policy-2.json",
254
+ issue_type="ANOTHER_ISSUE",
255
+ ignored_by="admin",
256
+ reason=None,
257
+ ),
258
+ ]
259
+
260
+ parts = generator.generate_github_comment_parts(
261
+ report, ignored_count=2, ignored_findings=ignored_findings
262
+ )
263
+
264
+ assert len(parts) == 1
265
+ # Check ignored findings section exists
266
+ assert "Ignored Findings" in parts[0]
267
+ assert "testuser" in parts[0]
268
+ assert "TEST_ISSUE" in parts[0]
269
+ assert "policy-1.json" in parts[0]
270
+ assert "Approved by security team" in parts[0]
271
+ assert "admin" in parts[0]
272
+ # Verify collapsible section
273
+ assert "View 2 ignored finding(s)" in parts[0]
274
+
275
+
276
+ def test_all_blocking_ignored_shows_passed():
277
+ """Test that when all blocking issues are ignored, status shows Passed."""
278
+ generator = ReportGenerator()
279
+
280
+ # Create a report with errors (normally fails)
281
+ results = [
282
+ PolicyValidationResult(
283
+ policy_file="policy-1.json",
284
+ is_valid=False,
285
+ issues=[
286
+ ValidationIssue(
287
+ severity="error",
288
+ issue_type="CRITICAL_ERROR",
289
+ message="Critical error",
290
+ statement_index=0,
291
+ )
292
+ ],
293
+ )
294
+ ]
295
+ report = generator.generate_report(results)
296
+
297
+ # Without all_blocking_ignored=True, it should show Failed
298
+ parts_failed = generator.generate_github_comment_parts(report)
299
+ assert "Validation Failed" in parts_failed[0]
300
+
301
+ # With all_blocking_ignored=True, it should show Passed
302
+ parts_passed = generator.generate_github_comment_parts(
303
+ report, ignored_count=1, all_blocking_ignored=True
304
+ )
305
+ assert "Validation Passed" in parts_passed[0]
306
+
307
+
308
+ def test_ignored_count_shown_in_summary_table():
309
+ """Test that ignored count appears in the summary table."""
310
+ generator = ReportGenerator()
311
+
312
+ results = [create_large_result("policy-1.json", 1)]
313
+ report = generator.generate_report(results)
314
+
315
+ parts = generator.generate_github_comment_parts(report, ignored_count=5)
316
+
317
+ assert "Ignored Findings" in parts[0]
318
+ assert "5" in parts[0] # The count
319
+ assert "🔕" in parts[0] # The emoji
320
+
321
+
322
+ def test_no_ignored_findings_section_when_empty():
323
+ """Test that no ignored findings section is shown when list is empty."""
324
+ generator = ReportGenerator()
325
+
326
+ results = [create_large_result("policy-1.json", 1)]
327
+ report = generator.generate_report(results)
328
+
329
+ parts = generator.generate_github_comment_parts(
330
+ report, ignored_count=0, ignored_findings=None
331
+ )
332
+
333
+ assert "### 🔕 Ignored Findings" not in parts[0]
334
+
335
+
336
+ def test_ignored_findings_with_long_paths_truncated():
337
+ """Test that long file paths in ignored findings are truncated."""
338
+ generator = ReportGenerator()
339
+
340
+ results = [create_large_result("policy-1.json", 1)]
341
+ report = generator.generate_report(results)
342
+
343
+ long_path = "very/long/path/that/exceeds/the/maximum/allowed/length/for/display/purposes/policy.json"
344
+ ignored_findings = [
345
+ IgnoredFindingInfo(
346
+ file_path=long_path,
347
+ issue_type="TEST_ISSUE",
348
+ ignored_by="testuser",
349
+ reason=None,
350
+ )
351
+ ]
352
+
353
+ parts = generator.generate_github_comment_parts(
354
+ report, ignored_count=1, ignored_findings=ignored_findings
355
+ )
356
+
357
+ # Path should be truncated with ellipsis
358
+ assert "..." in parts[0]
359
+ # But end of path should still be visible
360
+ assert "policy.json" in parts[0]
361
+
362
+
238
363
  if __name__ == "__main__":
239
364
  pytest.main([__file__, "-v"])
@@ -368,5 +368,165 @@ class TestPRCommenterDiffFiltering:
368
368
  assert any("Diff filtering results" in msg for msg in log_messages)
369
369
 
370
370
 
371
+ class TestPRCommenterBlockingIssuesIgnored:
372
+ """Tests for _are_all_blocking_issues_ignored method."""
373
+
374
+ @pytest.fixture
375
+ def mock_github(self):
376
+ """Create a mock GitHub integration."""
377
+ github = MagicMock(spec=GitHubIntegration)
378
+ github.is_configured = MagicMock(return_value=True)
379
+ return github
380
+
381
+ def test_no_blocking_issues_returns_true(self, mock_github):
382
+ """Test that no blocking issues returns True."""
383
+ commenter = PRCommenter(
384
+ github=mock_github,
385
+ fail_on_severities=["error", "critical"],
386
+ )
387
+
388
+ # Report with only warnings (no blocking issues)
389
+ report = ValidationReport(
390
+ total_policies=1,
391
+ valid_policies=0,
392
+ invalid_policies=1,
393
+ total_issues=1,
394
+ results=[
395
+ PolicyValidationResult(
396
+ policy_file="/test/policy.json",
397
+ is_valid=False,
398
+ issues=[
399
+ ValidationIssue(
400
+ severity="warning",
401
+ issue_type="test_warning",
402
+ message="Test warning",
403
+ statement_index=0,
404
+ )
405
+ ],
406
+ )
407
+ ],
408
+ )
409
+
410
+ result = commenter._are_all_blocking_issues_ignored(report)
411
+ assert result is True
412
+
413
+ def test_blocking_issues_not_ignored_returns_false(self, mock_github):
414
+ """Test that unignored blocking issues return False."""
415
+ commenter = PRCommenter(
416
+ github=mock_github,
417
+ fail_on_severities=["error", "critical"],
418
+ )
419
+
420
+ # Report with an error (blocking issue, not ignored)
421
+ report = ValidationReport(
422
+ total_policies=1,
423
+ valid_policies=0,
424
+ invalid_policies=1,
425
+ total_issues=1,
426
+ results=[
427
+ PolicyValidationResult(
428
+ policy_file="/test/policy.json",
429
+ is_valid=False,
430
+ issues=[
431
+ ValidationIssue(
432
+ severity="error",
433
+ issue_type="test_error",
434
+ message="Test error",
435
+ statement_index=0,
436
+ )
437
+ ],
438
+ )
439
+ ],
440
+ )
441
+
442
+ result = commenter._are_all_blocking_issues_ignored(report)
443
+ assert result is False
444
+
445
+ def test_all_blocking_issues_ignored_returns_true(self, mock_github):
446
+ """Test that all blocking issues being ignored returns True."""
447
+ from iam_validator.core.finding_fingerprint import FindingFingerprint
448
+
449
+ commenter = PRCommenter(
450
+ github=mock_github,
451
+ fail_on_severities=["error", "critical"],
452
+ )
453
+
454
+ # Create an issue
455
+ issue = ValidationIssue(
456
+ severity="error",
457
+ issue_type="test_error",
458
+ message="Test error",
459
+ statement_index=0,
460
+ )
461
+
462
+ # Calculate the fingerprint for this issue
463
+ fingerprint = FindingFingerprint.from_issue(issue, "policy.json")
464
+ fingerprint_hash = fingerprint.to_hash()
465
+
466
+ # Set the ignored finding IDs to include this issue
467
+ commenter._ignored_finding_ids = frozenset([fingerprint_hash])
468
+
469
+ report = ValidationReport(
470
+ total_policies=1,
471
+ valid_policies=0,
472
+ invalid_policies=1,
473
+ total_issues=1,
474
+ results=[
475
+ PolicyValidationResult(
476
+ policy_file="policy.json", # Relative path matching the fingerprint
477
+ is_valid=False,
478
+ issues=[issue],
479
+ )
480
+ ],
481
+ )
482
+
483
+ result = commenter._are_all_blocking_issues_ignored(report)
484
+ assert result is True
485
+
486
+ def test_some_blocking_issues_ignored_returns_false(self, mock_github):
487
+ """Test that partial ignored blocking issues returns False."""
488
+ from iam_validator.core.finding_fingerprint import FindingFingerprint
489
+
490
+ commenter = PRCommenter(
491
+ github=mock_github,
492
+ fail_on_severities=["error", "critical"],
493
+ )
494
+
495
+ # Create two issues
496
+ issue1 = ValidationIssue(
497
+ severity="error",
498
+ issue_type="test_error_1",
499
+ message="Test error 1",
500
+ statement_index=0,
501
+ )
502
+ issue2 = ValidationIssue(
503
+ severity="error",
504
+ issue_type="test_error_2",
505
+ message="Test error 2",
506
+ statement_index=1,
507
+ )
508
+
509
+ # Only ignore the first issue
510
+ fingerprint1 = FindingFingerprint.from_issue(issue1, "policy.json")
511
+ commenter._ignored_finding_ids = frozenset([fingerprint1.to_hash()])
512
+
513
+ report = ValidationReport(
514
+ total_policies=1,
515
+ valid_policies=0,
516
+ invalid_policies=1,
517
+ total_issues=2,
518
+ results=[
519
+ PolicyValidationResult(
520
+ policy_file="policy.json",
521
+ is_valid=False,
522
+ issues=[issue1, issue2],
523
+ )
524
+ ],
525
+ )
526
+
527
+ result = commenter._are_all_blocking_issues_ignored(report)
528
+ assert result is False
529
+
530
+
371
531
  if __name__ == "__main__":
372
532
  pytest.main([__file__, "-v"])