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