capo-backup 0.2.0__tar.gz → 0.5.0__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 (605) hide show
  1. {capo_backup-0.2.0/src/capo_backup.egg-info → capo_backup-0.5.0}/PKG-INFO +4 -4
  2. {capo_backup-0.2.0 → capo_backup-0.5.0}/README.md +2 -2
  3. {capo_backup-0.2.0 → capo_backup-0.5.0}/pyproject.toml +2 -2
  4. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_auth/_signers.py +50 -17
  5. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_auth/_sigv4.py +164 -19
  6. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/associate_backup_vault_mpa_approval_team.py +7 -3
  7. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/cancel_legal_hold.py +7 -3
  8. capo_backup-0.5.0/src/capo_backup/_operations/cryo_controller_user_manager/create_backup_access_point.py +185 -0
  9. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/create_backup_plan.py +7 -3
  10. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/create_backup_selection.py +7 -3
  11. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/create_backup_vault.py +7 -3
  12. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/create_framework.py +7 -3
  13. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/create_legal_hold.py +7 -3
  14. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/create_logically_air_gapped_backup_vault.py +7 -3
  15. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/create_report_plan.py +7 -3
  16. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/create_restore_access_backup_vault.py +7 -3
  17. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/create_restore_testing_plan.py +7 -3
  18. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/create_restore_testing_selection.py +7 -3
  19. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/create_tiering_configuration.py +7 -3
  20. capo_backup-0.5.0/src/capo_backup/_operations/cryo_controller_user_manager/delete_backup_access_point.py +140 -0
  21. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/delete_backup_plan.py +7 -3
  22. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/delete_backup_selection.py +7 -3
  23. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/delete_backup_vault.py +7 -3
  24. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/delete_backup_vault_access_policy.py +7 -3
  25. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/delete_backup_vault_lock_configuration.py +7 -3
  26. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/delete_backup_vault_notifications.py +7 -3
  27. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/delete_framework.py +7 -3
  28. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/delete_recovery_point.py +7 -3
  29. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/delete_report_plan.py +7 -3
  30. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/delete_restore_testing_plan.py +7 -3
  31. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/delete_restore_testing_selection.py +7 -3
  32. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/delete_tiering_configuration.py +7 -3
  33. capo_backup-0.5.0/src/capo_backup/_operations/cryo_controller_user_manager/describe_backup_access_point.py +167 -0
  34. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/describe_backup_job.py +7 -3
  35. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/describe_backup_vault.py +7 -3
  36. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/describe_copy_job.py +7 -3
  37. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/describe_framework.py +7 -3
  38. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/describe_global_settings.py +7 -3
  39. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/describe_protected_resource.py +7 -3
  40. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/describe_recovery_point.py +7 -3
  41. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/describe_region_settings.py +7 -3
  42. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/describe_report_job.py +7 -3
  43. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/describe_report_plan.py +7 -3
  44. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/describe_restore_job.py +7 -3
  45. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/describe_scan_job.py +7 -3
  46. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/disassociate_backup_vault_mpa_approval_team.py +7 -3
  47. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/disassociate_recovery_point.py +7 -3
  48. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/disassociate_recovery_point_from_parent.py +7 -3
  49. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/export_backup_plan_template.py +7 -3
  50. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/get_backup_plan.py +7 -3
  51. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/get_backup_plan_from_json.py +7 -3
  52. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/get_backup_plan_from_template.py +7 -3
  53. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/get_backup_selection.py +7 -3
  54. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/get_backup_vault_access_policy.py +7 -3
  55. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/get_backup_vault_notifications.py +7 -3
  56. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/get_legal_hold.py +7 -3
  57. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/get_pitr_malware_scan_results.py +7 -3
  58. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/get_recovery_point_index_details.py +7 -3
  59. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/get_recovery_point_restore_metadata.py +7 -3
  60. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/get_restore_job_metadata.py +7 -3
  61. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/get_restore_testing_inferred_metadata.py +7 -3
  62. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/get_restore_testing_plan.py +7 -3
  63. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/get_restore_testing_selection.py +7 -3
  64. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/get_supported_resource_types.py +7 -3
  65. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/get_tiering_configuration.py +7 -3
  66. capo_backup-0.5.0/src/capo_backup/_operations/cryo_controller_user_manager/list_backup_access_points.py +156 -0
  67. capo_backup-0.5.0/src/capo_backup/_operations/cryo_controller_user_manager/list_backup_access_points_by_recovery_point.py +159 -0
  68. capo_backup-0.5.0/src/capo_backup/_operations/cryo_controller_user_manager/list_backup_access_points_by_resource.py +154 -0
  69. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/list_backup_job_summaries.py +7 -3
  70. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/list_backup_jobs.py +7 -3
  71. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/list_backup_plan_templates.py +7 -3
  72. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/list_backup_plan_versions.py +7 -3
  73. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/list_backup_plans.py +7 -3
  74. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/list_backup_selections.py +7 -3
  75. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/list_backup_vaults.py +7 -3
  76. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/list_copy_job_summaries.py +7 -3
  77. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/list_copy_jobs.py +7 -3
  78. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/list_frameworks.py +7 -3
  79. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/list_indexed_recovery_points.py +7 -3
  80. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/list_legal_holds.py +7 -3
  81. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/list_protected_resources.py +7 -3
  82. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/list_protected_resources_by_backup_vault.py +7 -3
  83. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/list_recovery_points_by_backup_vault.py +7 -3
  84. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/list_recovery_points_by_legal_hold.py +7 -3
  85. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/list_recovery_points_by_resource.py +7 -3
  86. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/list_report_jobs.py +7 -3
  87. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/list_report_plans.py +7 -3
  88. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/list_restore_access_backup_vaults.py +7 -3
  89. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/list_restore_job_summaries.py +7 -3
  90. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/list_restore_jobs.py +7 -3
  91. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/list_restore_jobs_by_protected_resource.py +7 -3
  92. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/list_restore_testing_plans.py +7 -3
  93. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/list_restore_testing_selections.py +7 -3
  94. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/list_scan_job_summaries.py +7 -3
  95. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/list_scan_jobs.py +7 -3
  96. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/list_tags.py +7 -3
  97. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/list_tiering_configurations.py +7 -3
  98. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/put_backup_vault_access_policy.py +7 -3
  99. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/put_backup_vault_lock_configuration.py +7 -3
  100. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/put_backup_vault_notifications.py +7 -3
  101. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/put_restore_validation_result.py +7 -3
  102. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/revoke_restore_access_backup_vault.py +7 -3
  103. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/start_backup_job.py +7 -3
  104. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/start_copy_job.py +7 -3
  105. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/start_report_job.py +7 -3
  106. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/start_restore_job.py +7 -3
  107. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/start_scan_job.py +7 -3
  108. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/stop_backup_job.py +7 -3
  109. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/tag_resource.py +7 -3
  110. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/untag_resource.py +7 -3
  111. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/update_backup_plan.py +7 -3
  112. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/update_framework.py +7 -3
  113. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/update_global_settings.py +7 -3
  114. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/update_recovery_point_index_settings.py +7 -3
  115. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/update_recovery_point_lifecycle.py +7 -3
  116. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/update_region_settings.py +7 -3
  117. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/update_report_plan.py +7 -3
  118. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/update_restore_testing_plan.py +7 -3
  119. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/update_restore_testing_selection.py +7 -3
  120. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_operations/cryo_controller_user_manager/update_tiering_configuration.py +7 -3
  121. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_protocol/eventstream.py +15 -13
  122. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_services/_pipeline.py +17 -0
  123. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_services/async_backup.py +426 -6
  124. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_services/backup.py +420 -6
  125. capo_backup-0.5.0/src/capo_backup/types/access_point_arn.py +5 -0
  126. capo_backup-0.5.0/src/capo_backup/types/access_point_metadata_map.py +29 -0
  127. capo_backup-0.5.0/src/capo_backup/types/access_point_metadata_map_key_string.py +5 -0
  128. capo_backup-0.5.0/src/capo_backup/types/access_point_metadata_map_value_string.py +5 -0
  129. capo_backup-0.5.0/src/capo_backup/types/access_point_name.py +5 -0
  130. capo_backup-0.5.0/src/capo_backup/types/access_point_policy.py +5 -0
  131. capo_backup-0.5.0/src/capo_backup/types/access_point_status.py +22 -0
  132. capo_backup-0.5.0/src/capo_backup/types/backup_access_points.py +31 -0
  133. capo_backup-0.5.0/src/capo_backup/types/backup_vault_arn.py +5 -0
  134. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/backup_vault_event.py +6 -0
  135. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/backup_vault_list_member.py +1 -1
  136. capo_backup-0.5.0/src/capo_backup/types/create_backup_access_point_request.py +82 -0
  137. capo_backup-0.5.0/src/capo_backup/types/create_backup_access_point_response.py +49 -0
  138. capo_backup-0.5.0/src/capo_backup/types/delete_backup_access_point_input.py +24 -0
  139. capo_backup-0.5.0/src/capo_backup/types/describe_backup_access_point_input.py +24 -0
  140. capo_backup-0.5.0/src/capo_backup/types/describe_backup_access_point_response.py +149 -0
  141. capo_backup-0.5.0/src/capo_backup/types/list_access_points_member.py +140 -0
  142. capo_backup-0.5.0/src/capo_backup/types/list_backup_access_points_by_recovery_point_request.py +29 -0
  143. capo_backup-0.5.0/src/capo_backup/types/list_backup_access_points_by_recovery_point_request_max_results_integer.py +5 -0
  144. capo_backup-0.5.0/src/capo_backup/types/list_backup_access_points_by_recovery_point_response.py +49 -0
  145. capo_backup-0.5.0/src/capo_backup/types/list_backup_access_points_by_resource_request.py +29 -0
  146. capo_backup-0.5.0/src/capo_backup/types/list_backup_access_points_by_resource_request_max_results_integer.py +5 -0
  147. capo_backup-0.5.0/src/capo_backup/types/list_backup_access_points_by_resource_response.py +49 -0
  148. capo_backup-0.5.0/src/capo_backup/types/list_backup_access_points_request.py +26 -0
  149. capo_backup-0.5.0/src/capo_backup/types/list_backup_access_points_request_max_results_integer.py +5 -0
  150. capo_backup-0.5.0/src/capo_backup/types/list_backup_access_points_response.py +49 -0
  151. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_recovery_points_by_resource_input.py +1 -1
  152. capo_backup-0.5.0/src/capo_backup/types/recovery_point_arn.py +5 -0
  153. capo_backup-0.5.0/src/capo_backup/types/resource_arn.py +5 -0
  154. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/restore_testing_recovery_point_selection.py +1 -1
  155. capo_backup-0.5.0/src/capo_backup/types/tag_map.py +29 -0
  156. capo_backup-0.5.0/src/capo_backup/types/tag_map_key_string.py +5 -0
  157. capo_backup-0.5.0/src/capo_backup/types/tag_map_value_string.py +5 -0
  158. {capo_backup-0.2.0 → capo_backup-0.5.0/src/capo_backup.egg-info}/PKG-INFO +4 -4
  159. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup.egg-info/SOURCES.txt +35 -0
  160. {capo_backup-0.2.0 → capo_backup-0.5.0}/tests/test_sigv4.py +217 -16
  161. {capo_backup-0.2.0 → capo_backup-0.5.0}/LICENSE +0 -0
  162. {capo_backup-0.2.0 → capo_backup-0.5.0}/setup.cfg +0 -0
  163. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/__init__.py +0 -0
  164. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_async.py +0 -0
  165. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_auth/_identity.py +0 -0
  166. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_auth/_providers.py +0 -0
  167. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_auth/_zapros_handler.py +0 -0
  168. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_body.py +0 -0
  169. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_iter.py +0 -0
  170. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_pagination.py +0 -0
  171. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_protocol/__init__.py +0 -0
  172. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_protocol/errors.py +0 -0
  173. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_protocol/serialize.py +0 -0
  174. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_protocol/xml.py +0 -0
  175. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_rule_engine/__init__.py +0 -0
  176. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_rule_engine/_aws_partition.py +0 -0
  177. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_rule_engine/_endpoint_rule_set.py +0 -0
  178. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_rule_engine/_endpoint_runtime.py +0 -0
  179. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/_services/_aws_config.py +0 -0
  180. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/errors/__init__.py +0 -0
  181. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/errors/_base.py +0 -0
  182. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/errors/already_exists_exception.py +0 -0
  183. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/errors/conflict_exception.py +0 -0
  184. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/errors/dependency_failure_exception.py +0 -0
  185. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/errors/invalid_parameter_value_exception.py +0 -0
  186. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/errors/invalid_request_exception.py +0 -0
  187. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/errors/invalid_resource_state_exception.py +0 -0
  188. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/errors/limit_exceeded_exception.py +0 -0
  189. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/errors/missing_parameter_value_exception.py +0 -0
  190. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/errors/resource_not_found_exception.py +0 -0
  191. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/errors/service_unavailable_exception.py +0 -0
  192. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/py.typed +0 -0
  193. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/_prelude/blob.py +0 -0
  194. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/_prelude/timestamp.py +0 -0
  195. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/account_id.py +0 -0
  196. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/advanced_backup_setting.py +0 -0
  197. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/advanced_backup_settings.py +0 -0
  198. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/aggregated_scan_result.py +0 -0
  199. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/aggregation_period.py +0 -0
  200. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/arn.py +0 -0
  201. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/associate_backup_vault_mpa_approval_team_input.py +0 -0
  202. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/backup_job.py +0 -0
  203. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/backup_job_child_jobs_in_state.py +0 -0
  204. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/backup_job_state.py +0 -0
  205. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/backup_job_status.py +0 -0
  206. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/backup_job_summary.py +0 -0
  207. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/backup_job_summary_list.py +0 -0
  208. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/backup_jobs_list.py +0 -0
  209. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/backup_option_key.py +0 -0
  210. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/backup_option_value.py +0 -0
  211. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/backup_options.py +0 -0
  212. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/backup_plan.py +0 -0
  213. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/backup_plan_input.py +0 -0
  214. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/backup_plan_name.py +0 -0
  215. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/backup_plan_templates_list.py +0 -0
  216. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/backup_plan_templates_list_member.py +0 -0
  217. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/backup_plan_versions_list.py +0 -0
  218. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/backup_plans_list.py +0 -0
  219. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/backup_plans_list_member.py +0 -0
  220. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/backup_rule.py +0 -0
  221. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/backup_rule_input.py +0 -0
  222. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/backup_rule_name.py +0 -0
  223. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/backup_rules.py +0 -0
  224. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/backup_rules_input.py +0 -0
  225. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/backup_selection.py +0 -0
  226. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/backup_selection_name.py +0 -0
  227. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/backup_selections_list.py +0 -0
  228. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/backup_selections_list_member.py +0 -0
  229. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/backup_vault_events.py +0 -0
  230. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/backup_vault_list.py +0 -0
  231. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/backup_vault_name.py +0 -0
  232. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/backup_vault_name_or_wildcard.py +0 -0
  233. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/boolean.py +0 -0
  234. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/boolean2.py +0 -0
  235. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/calculated_lifecycle.py +0 -0
  236. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/cancel_legal_hold_input.py +0 -0
  237. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/cancel_legal_hold_output.py +0 -0
  238. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/compliance_resource_id_list.py +0 -0
  239. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/condition.py +0 -0
  240. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/condition_key.py +0 -0
  241. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/condition_parameter.py +0 -0
  242. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/condition_parameters.py +0 -0
  243. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/condition_type.py +0 -0
  244. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/condition_value.py +0 -0
  245. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/conditions.py +0 -0
  246. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/control_input_parameter.py +0 -0
  247. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/control_input_parameters.py +0 -0
  248. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/control_name.py +0 -0
  249. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/control_scope.py +0 -0
  250. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/copy_action.py +0 -0
  251. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/copy_actions.py +0 -0
  252. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/copy_job.py +0 -0
  253. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/copy_job_child_jobs_in_state.py +0 -0
  254. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/copy_job_state.py +0 -0
  255. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/copy_job_status.py +0 -0
  256. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/copy_job_summary.py +0 -0
  257. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/copy_job_summary_list.py +0 -0
  258. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/copy_jobs_list.py +0 -0
  259. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/create_backup_plan_input.py +0 -0
  260. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/create_backup_plan_output.py +0 -0
  261. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/create_backup_selection_input.py +0 -0
  262. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/create_backup_selection_output.py +0 -0
  263. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/create_backup_vault_input.py +0 -0
  264. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/create_backup_vault_output.py +0 -0
  265. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/create_framework_input.py +0 -0
  266. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/create_framework_output.py +0 -0
  267. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/create_legal_hold_input.py +0 -0
  268. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/create_legal_hold_output.py +0 -0
  269. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/create_logically_air_gapped_backup_vault_input.py +0 -0
  270. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/create_logically_air_gapped_backup_vault_output.py +0 -0
  271. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/create_report_plan_input.py +0 -0
  272. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/create_report_plan_output.py +0 -0
  273. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/create_restore_access_backup_vault_input.py +0 -0
  274. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/create_restore_access_backup_vault_output.py +0 -0
  275. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/create_restore_testing_plan_input.py +0 -0
  276. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/create_restore_testing_plan_output.py +0 -0
  277. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/create_restore_testing_selection_input.py +0 -0
  278. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/create_restore_testing_selection_output.py +0 -0
  279. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/create_tiering_configuration_input.py +0 -0
  280. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/create_tiering_configuration_output.py +0 -0
  281. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/creator_request_id.py +0 -0
  282. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/cron_expression.py +0 -0
  283. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/date_range.py +0 -0
  284. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/delete_backup_plan_input.py +0 -0
  285. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/delete_backup_plan_output.py +0 -0
  286. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/delete_backup_selection_input.py +0 -0
  287. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/delete_backup_vault_access_policy_input.py +0 -0
  288. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/delete_backup_vault_input.py +0 -0
  289. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/delete_backup_vault_lock_configuration_input.py +0 -0
  290. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/delete_backup_vault_notifications_input.py +0 -0
  291. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/delete_framework_input.py +0 -0
  292. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/delete_recovery_point_input.py +0 -0
  293. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/delete_report_plan_input.py +0 -0
  294. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/delete_restore_testing_plan_input.py +0 -0
  295. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/delete_restore_testing_selection_input.py +0 -0
  296. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/delete_tiering_configuration_input.py +0 -0
  297. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/delete_tiering_configuration_output.py +0 -0
  298. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/describe_backup_job_input.py +0 -0
  299. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/describe_backup_job_output.py +0 -0
  300. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/describe_backup_vault_input.py +0 -0
  301. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/describe_backup_vault_output.py +0 -0
  302. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/describe_copy_job_input.py +0 -0
  303. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/describe_copy_job_output.py +0 -0
  304. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/describe_framework_input.py +0 -0
  305. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/describe_framework_output.py +0 -0
  306. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/describe_global_settings_input.py +0 -0
  307. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/describe_global_settings_output.py +0 -0
  308. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/describe_protected_resource_input.py +0 -0
  309. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/describe_protected_resource_output.py +0 -0
  310. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/describe_recovery_point_input.py +0 -0
  311. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/describe_recovery_point_output.py +0 -0
  312. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/describe_region_settings_input.py +0 -0
  313. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/describe_region_settings_output.py +0 -0
  314. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/describe_report_job_input.py +0 -0
  315. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/describe_report_job_output.py +0 -0
  316. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/describe_report_plan_input.py +0 -0
  317. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/describe_report_plan_output.py +0 -0
  318. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/describe_restore_job_input.py +0 -0
  319. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/describe_restore_job_output.py +0 -0
  320. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/describe_scan_job_input.py +0 -0
  321. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/describe_scan_job_output.py +0 -0
  322. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/disassociate_backup_vault_mpa_approval_team_input.py +0 -0
  323. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/disassociate_recovery_point_from_parent_input.py +0 -0
  324. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/disassociate_recovery_point_input.py +0 -0
  325. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/encryption_key_type.py +0 -0
  326. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/export_backup_plan_template_input.py +0 -0
  327. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/export_backup_plan_template_output.py +0 -0
  328. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/format_list.py +0 -0
  329. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/framework.py +0 -0
  330. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/framework_control.py +0 -0
  331. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/framework_controls.py +0 -0
  332. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/framework_description.py +0 -0
  333. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/framework_list.py +0 -0
  334. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/framework_name.py +0 -0
  335. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/get_backup_plan_from_json_input.py +0 -0
  336. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/get_backup_plan_from_json_output.py +0 -0
  337. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/get_backup_plan_from_template_input.py +0 -0
  338. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/get_backup_plan_from_template_output.py +0 -0
  339. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/get_backup_plan_input.py +0 -0
  340. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/get_backup_plan_output.py +0 -0
  341. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/get_backup_selection_input.py +0 -0
  342. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/get_backup_selection_output.py +0 -0
  343. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/get_backup_vault_access_policy_input.py +0 -0
  344. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/get_backup_vault_access_policy_output.py +0 -0
  345. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/get_backup_vault_notifications_input.py +0 -0
  346. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/get_backup_vault_notifications_output.py +0 -0
  347. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/get_legal_hold_input.py +0 -0
  348. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/get_legal_hold_output.py +0 -0
  349. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/get_pitr_malware_scan_results_input.py +0 -0
  350. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/get_pitr_malware_scan_results_output.py +0 -0
  351. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/get_recovery_point_index_details_input.py +0 -0
  352. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/get_recovery_point_index_details_output.py +0 -0
  353. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/get_recovery_point_restore_metadata_input.py +0 -0
  354. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/get_recovery_point_restore_metadata_output.py +0 -0
  355. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/get_restore_job_metadata_input.py +0 -0
  356. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/get_restore_job_metadata_output.py +0 -0
  357. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/get_restore_testing_inferred_metadata_input.py +0 -0
  358. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/get_restore_testing_inferred_metadata_output.py +0 -0
  359. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/get_restore_testing_plan_input.py +0 -0
  360. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/get_restore_testing_plan_output.py +0 -0
  361. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/get_restore_testing_selection_input.py +0 -0
  362. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/get_restore_testing_selection_output.py +0 -0
  363. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/get_supported_resource_types_output.py +0 -0
  364. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/get_tiering_configuration_input.py +0 -0
  365. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/get_tiering_configuration_output.py +0 -0
  366. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/global_settings.py +0 -0
  367. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/global_settings_name.py +0 -0
  368. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/global_settings_value.py +0 -0
  369. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/iam_policy.py +0 -0
  370. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/iam_role_arn.py +0 -0
  371. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/index.py +0 -0
  372. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/index_action.py +0 -0
  373. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/index_actions.py +0 -0
  374. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/index_status.py +0 -0
  375. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/indexed_recovery_point.py +0 -0
  376. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/indexed_recovery_point_list.py +0 -0
  377. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/integer.py +0 -0
  378. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/is_enabled.py +0 -0
  379. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/key_value.py +0 -0
  380. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/key_value_list.py +0 -0
  381. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/latest_mpa_approval_team_update.py +0 -0
  382. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/latest_revoke_request.py +0 -0
  383. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/legal_hold.py +0 -0
  384. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/legal_hold_status.py +0 -0
  385. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/legal_holds_list.py +0 -0
  386. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/lifecycle.py +0 -0
  387. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/lifecycle_delete_after_event.py +0 -0
  388. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_backup_job_summaries_input.py +0 -0
  389. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_backup_job_summaries_output.py +0 -0
  390. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_backup_jobs_input.py +0 -0
  391. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_backup_jobs_output.py +0 -0
  392. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_backup_plan_templates_input.py +0 -0
  393. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_backup_plan_templates_output.py +0 -0
  394. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_backup_plan_versions_input.py +0 -0
  395. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_backup_plan_versions_output.py +0 -0
  396. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_backup_plans_input.py +0 -0
  397. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_backup_plans_output.py +0 -0
  398. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_backup_selections_input.py +0 -0
  399. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_backup_selections_output.py +0 -0
  400. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_backup_vaults_input.py +0 -0
  401. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_backup_vaults_output.py +0 -0
  402. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_copy_job_summaries_input.py +0 -0
  403. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_copy_job_summaries_output.py +0 -0
  404. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_copy_jobs_input.py +0 -0
  405. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_copy_jobs_output.py +0 -0
  406. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_frameworks_input.py +0 -0
  407. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_frameworks_output.py +0 -0
  408. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_indexed_recovery_points_input.py +0 -0
  409. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_indexed_recovery_points_output.py +0 -0
  410. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_legal_holds_input.py +0 -0
  411. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_legal_holds_output.py +0 -0
  412. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_of_tags.py +0 -0
  413. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_protected_resources_by_backup_vault_input.py +0 -0
  414. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_protected_resources_by_backup_vault_output.py +0 -0
  415. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_protected_resources_input.py +0 -0
  416. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_protected_resources_output.py +0 -0
  417. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_recovery_points_by_backup_vault_input.py +0 -0
  418. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_recovery_points_by_backup_vault_output.py +0 -0
  419. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_recovery_points_by_legal_hold_input.py +0 -0
  420. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_recovery_points_by_legal_hold_output.py +0 -0
  421. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_recovery_points_by_resource_output.py +0 -0
  422. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_report_jobs_input.py +0 -0
  423. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_report_jobs_output.py +0 -0
  424. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_report_plans_input.py +0 -0
  425. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_report_plans_output.py +0 -0
  426. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_restore_access_backup_vaults_input.py +0 -0
  427. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_restore_access_backup_vaults_output.py +0 -0
  428. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_restore_job_summaries_input.py +0 -0
  429. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_restore_job_summaries_output.py +0 -0
  430. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_restore_jobs_by_protected_resource_input.py +0 -0
  431. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_restore_jobs_by_protected_resource_output.py +0 -0
  432. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_restore_jobs_input.py +0 -0
  433. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_restore_jobs_output.py +0 -0
  434. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_restore_testing_plans_input.py +0 -0
  435. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_restore_testing_plans_input_max_results_integer.py +0 -0
  436. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_restore_testing_plans_output.py +0 -0
  437. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_restore_testing_selections_input.py +0 -0
  438. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_restore_testing_selections_input_max_results_integer.py +0 -0
  439. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_restore_testing_selections_output.py +0 -0
  440. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_scan_job_summaries_input.py +0 -0
  441. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_scan_job_summaries_output.py +0 -0
  442. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_scan_jobs_input.py +0 -0
  443. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_scan_jobs_input_max_results_integer.py +0 -0
  444. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_scan_jobs_output.py +0 -0
  445. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_tags_input.py +0 -0
  446. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_tags_output.py +0 -0
  447. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_tiering_configurations_input.py +0 -0
  448. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/list_tiering_configurations_output.py +0 -0
  449. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/long.py +0 -0
  450. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/long2.py +0 -0
  451. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/malware_scanner.py +0 -0
  452. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/max_framework_inputs.py +0 -0
  453. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/max_results.py +0 -0
  454. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/max_scheduled_runs_preview.py +0 -0
  455. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/message_category.py +0 -0
  456. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/metadata.py +0 -0
  457. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/metadata_key.py +0 -0
  458. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/metadata_value.py +0 -0
  459. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/mpa_revoke_session_status.py +0 -0
  460. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/mpa_session_status.py +0 -0
  461. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/parameter_name.py +0 -0
  462. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/parameter_value.py +0 -0
  463. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/protected_resource.py +0 -0
  464. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/protected_resource_conditions.py +0 -0
  465. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/protected_resources_list.py +0 -0
  466. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/put_backup_vault_access_policy_input.py +0 -0
  467. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/put_backup_vault_lock_configuration_input.py +0 -0
  468. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/put_backup_vault_notifications_input.py +0 -0
  469. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/put_restore_validation_result_input.py +0 -0
  470. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/recovery_point_by_backup_vault.py +0 -0
  471. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/recovery_point_by_backup_vault_list.py +0 -0
  472. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/recovery_point_by_resource.py +0 -0
  473. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/recovery_point_by_resource_list.py +0 -0
  474. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/recovery_point_creator.py +0 -0
  475. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/recovery_point_member.py +0 -0
  476. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/recovery_point_selection.py +0 -0
  477. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/recovery_point_status.py +0 -0
  478. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/recovery_points_list.py +0 -0
  479. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/region.py +0 -0
  480. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/report_delivery_channel.py +0 -0
  481. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/report_destination.py +0 -0
  482. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/report_job.py +0 -0
  483. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/report_job_id.py +0 -0
  484. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/report_job_list.py +0 -0
  485. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/report_plan.py +0 -0
  486. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/report_plan_description.py +0 -0
  487. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/report_plan_list.py +0 -0
  488. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/report_plan_name.py +0 -0
  489. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/report_setting.py +0 -0
  490. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/requester_comment.py +0 -0
  491. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/resource_arns.py +0 -0
  492. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/resource_identifiers.py +0 -0
  493. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/resource_selection.py +0 -0
  494. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/resource_selections.py +0 -0
  495. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/resource_type.py +0 -0
  496. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/resource_type_list.py +0 -0
  497. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/resource_type_management_preference.py +0 -0
  498. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/resource_type_opt_in_preference.py +0 -0
  499. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/resource_types.py +0 -0
  500. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/restore_access_backup_vault_list.py +0 -0
  501. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/restore_access_backup_vault_list_member.py +0 -0
  502. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/restore_deletion_status.py +0 -0
  503. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/restore_job_creator.py +0 -0
  504. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/restore_job_id.py +0 -0
  505. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/restore_job_state.py +0 -0
  506. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/restore_job_status.py +0 -0
  507. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/restore_job_summary.py +0 -0
  508. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/restore_job_summary_list.py +0 -0
  509. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/restore_jobs_list.py +0 -0
  510. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/restore_jobs_list_member.py +0 -0
  511. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/restore_testing_plan_for_create.py +0 -0
  512. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/restore_testing_plan_for_get.py +0 -0
  513. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/restore_testing_plan_for_list.py +0 -0
  514. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/restore_testing_plan_for_update.py +0 -0
  515. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/restore_testing_plans.py +0 -0
  516. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/restore_testing_recovery_point_selection_algorithm.py +0 -0
  517. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/restore_testing_recovery_point_type.py +0 -0
  518. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/restore_testing_recovery_point_type_list.py +0 -0
  519. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/restore_testing_selection_for_create.py +0 -0
  520. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/restore_testing_selection_for_get.py +0 -0
  521. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/restore_testing_selection_for_list.py +0 -0
  522. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/restore_testing_selection_for_update.py +0 -0
  523. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/restore_testing_selections.py +0 -0
  524. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/restore_validation_status.py +0 -0
  525. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/revoke_restore_access_backup_vault_input.py +0 -0
  526. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/rule_execution_type.py +0 -0
  527. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/scan_action.py +0 -0
  528. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/scan_actions.py +0 -0
  529. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/scan_finding.py +0 -0
  530. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/scan_findings.py +0 -0
  531. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/scan_job.py +0 -0
  532. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/scan_job_creator.py +0 -0
  533. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/scan_job_state.py +0 -0
  534. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/scan_job_status.py +0 -0
  535. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/scan_job_summary.py +0 -0
  536. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/scan_job_summary_list.py +0 -0
  537. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/scan_jobs.py +0 -0
  538. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/scan_mode.py +0 -0
  539. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/scan_resource_type.py +0 -0
  540. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/scan_result.py +0 -0
  541. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/scan_result_info.py +0 -0
  542. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/scan_result_status.py +0 -0
  543. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/scan_results.py +0 -0
  544. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/scan_setting.py +0 -0
  545. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/scan_settings.py +0 -0
  546. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/scan_state.py +0 -0
  547. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/scheduled_plan_execution_member.py +0 -0
  548. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/scheduled_runs_preview.py +0 -0
  549. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/sensitive_string_map.py +0 -0
  550. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/start_backup_job_input.py +0 -0
  551. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/start_backup_job_output.py +0 -0
  552. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/start_copy_job_input.py +0 -0
  553. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/start_copy_job_output.py +0 -0
  554. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/start_report_job_input.py +0 -0
  555. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/start_report_job_output.py +0 -0
  556. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/start_restore_job_input.py +0 -0
  557. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/start_restore_job_output.py +0 -0
  558. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/start_scan_job_input.py +0 -0
  559. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/start_scan_job_output.py +0 -0
  560. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/stop_backup_job_input.py +0 -0
  561. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/storage_class.py +0 -0
  562. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/string.py +0 -0
  563. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/string_list.py +0 -0
  564. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/string_map.py +0 -0
  565. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/tag_key.py +0 -0
  566. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/tag_key_list.py +0 -0
  567. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/tag_resource_input.py +0 -0
  568. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/tag_value.py +0 -0
  569. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/tags.py +0 -0
  570. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/tiering_configuration.py +0 -0
  571. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/tiering_configuration_input_for_create.py +0 -0
  572. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/tiering_configuration_input_for_update.py +0 -0
  573. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/tiering_configuration_name.py +0 -0
  574. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/tiering_configurations_list.py +0 -0
  575. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/tiering_configurations_list_member.py +0 -0
  576. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/tiering_down_settings_in_days.py +0 -0
  577. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/timestamp.py +0 -0
  578. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/timezone.py +0 -0
  579. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/untag_resource_input.py +0 -0
  580. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/update_backup_plan_input.py +0 -0
  581. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/update_backup_plan_output.py +0 -0
  582. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/update_framework_input.py +0 -0
  583. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/update_framework_output.py +0 -0
  584. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/update_global_settings_input.py +0 -0
  585. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/update_recovery_point_index_settings_input.py +0 -0
  586. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/update_recovery_point_index_settings_output.py +0 -0
  587. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/update_recovery_point_lifecycle_input.py +0 -0
  588. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/update_recovery_point_lifecycle_output.py +0 -0
  589. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/update_region_settings_input.py +0 -0
  590. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/update_report_plan_input.py +0 -0
  591. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/update_report_plan_output.py +0 -0
  592. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/update_restore_testing_plan_input.py +0 -0
  593. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/update_restore_testing_plan_output.py +0 -0
  594. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/update_restore_testing_selection_input.py +0 -0
  595. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/update_restore_testing_selection_output.py +0 -0
  596. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/update_tiering_configuration_input.py +0 -0
  597. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/update_tiering_configuration_output.py +0 -0
  598. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/vault_names.py +0 -0
  599. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/vault_state.py +0 -0
  600. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/vault_type.py +0 -0
  601. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup/types/window_minutes.py +0 -0
  602. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup.egg-info/dependency_links.txt +0 -0
  603. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup.egg-info/requires.txt +0 -0
  604. {capo_backup-0.2.0 → capo_backup-0.5.0}/src/capo_backup.egg-info/top_level.txt +0 -0
  605. {capo_backup-0.2.0 → capo_backup-0.5.0}/tests/test_body.py +0 -0
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: capo-backup
3
- Version: 0.2.0
4
- Summary: Python SDK for Backup.
3
+ Version: 0.5.0
4
+ Summary: Python SDK for AWS Backup.
5
5
  Classifier: Development Status :: 4 - Beta
6
6
  Classifier: Intended Audience :: Developers
7
7
  Classifier: License :: OSI Approved :: MIT License
@@ -57,8 +57,8 @@ from capo_backup import AsyncBackupClient
57
57
 
58
58
  async def main():
59
59
  async with AsyncBackupClient() as backup:
60
- # Example: paginate over list_backup_jobs
61
- async for item in backup.iter_list_backup_jobs():
60
+ # Example: paginate over list_backup_access_points
61
+ async for item in backup.iter_list_backup_access_points():
62
62
  print(item)
63
63
  ```
64
64
 
@@ -29,8 +29,8 @@ from capo_backup import AsyncBackupClient
29
29
 
30
30
  async def main():
31
31
  async with AsyncBackupClient() as backup:
32
- # Example: paginate over list_backup_jobs
33
- async for item in backup.iter_list_backup_jobs():
32
+ # Example: paginate over list_backup_access_points
33
+ async for item in backup.iter_list_backup_access_points():
34
34
  print(item)
35
35
  ```
36
36
 
@@ -1,7 +1,7 @@
1
1
  [project]
2
2
  name = "capo-backup"
3
- version = "0.2.0"
4
- description = "Python SDK for Backup."
3
+ version = "0.5.0"
4
+ description = "Python SDK for AWS Backup."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
7
7
  classifiers = [
@@ -7,7 +7,7 @@ from zapros import Request
7
7
 
8
8
  from capo_backup._auth._identity import Credentials, Identity
9
9
  from capo_backup._auth._providers import IdentityProvider
10
- from capo_backup._auth._sigv4 import SigV4AuthContext, sign_sigv4
10
+ from capo_backup._auth._sigv4 import S3_SIGNING_NAMES, SigV4AuthContext, sign_sigv4
11
11
 
12
12
  IdentityT = TypeVar("IdentityT", bound="Identity")
13
13
 
@@ -30,14 +30,25 @@ class SigV4Signer(Signer[Credentials]):
30
30
  The full auth scheme (``name`` variant, ``signingName``, ``signingRegion``,
31
31
  encoding/normalization flags) is provided by the caller — either from the
32
32
  endpoint rule-set's ``authSchemes`` property or built by the generated
33
- ``get_signer`` from operation defaults.
33
+ ``get_signer`` from operation defaults. ``unsigned_payload`` mirrors the
34
+ operation's ``aws.auth#unsignedPayload`` trait: the body is sent but left
35
+ out of the signature. ``event_stream`` marks a request event stream: the
36
+ request is signed with the ``STREAMING-AWS4-HMAC-SHA256-EVENTS`` payload
37
+ marker and every event with a signature chained from it.
34
38
  """
35
39
 
36
40
  def __init__(
37
- self, provider: IdentityProvider[Credentials], *, auth_scheme: dict[str, Any]
41
+ self,
42
+ provider: IdentityProvider[Credentials],
43
+ *,
44
+ auth_scheme: dict[str, Any],
45
+ unsigned_payload: bool = False,
46
+ event_stream: bool = False,
38
47
  ) -> None:
39
48
  super().__init__(provider)
40
49
  self._auth_scheme = auth_scheme
50
+ self._unsigned_payload = unsigned_payload
51
+ self._event_stream = event_stream
41
52
 
42
53
  async def asign(self, req: Request) -> Request:
43
54
  creds = await self.provider.aresolve_identity()
@@ -55,13 +66,24 @@ class SigV4Signer(Signer[Credentials]):
55
66
  "disableNormalizePath", False
56
67
  ),
57
68
  }
58
- if req.body is None:
59
- body: bytes | None = b""
60
- elif isinstance(req.body, bytes):
61
- body = req.body
62
- else:
63
- body = None
64
- return sign_sigv4(req, ctx, body)
69
+ unsigned_payload = self._unsigned_payload
70
+ if (
71
+ not unsigned_payload
72
+ and not self._event_stream
73
+ and req.body is not None
74
+ and not isinstance(req.body, bytes)
75
+ ):
76
+ if self._auth_scheme["signingName"] in S3_SIGNING_NAMES:
77
+ # S3 accepts UNSIGNED-PAYLOAD for any operation; streamed bodies rely on it.
78
+ unsigned_payload = True
79
+ else:
80
+ raise NotImplementedError(
81
+ "Currently we don't support signed chunked payloads, so buffer the body and "
82
+ "pass bytes as a workaround; chunked signed implementation coming soon"
83
+ )
84
+ return sign_sigv4(
85
+ req, ctx, unsigned_payload=unsigned_payload, event_stream=self._event_stream
86
+ )
65
87
 
66
88
  def sign(self, req: Request) -> Request:
67
89
  creds = self.provider.resolve_identity()
@@ -79,10 +101,21 @@ class SigV4Signer(Signer[Credentials]):
79
101
  "disableNormalizePath", False
80
102
  ),
81
103
  }
82
- if req.body is None:
83
- body: bytes | None = b""
84
- elif isinstance(req.body, bytes):
85
- body = req.body
86
- else:
87
- body = None
88
- return sign_sigv4(req, ctx, body)
104
+ unsigned_payload = self._unsigned_payload
105
+ if (
106
+ not unsigned_payload
107
+ and not self._event_stream
108
+ and req.body is not None
109
+ and not isinstance(req.body, bytes)
110
+ ):
111
+ if self._auth_scheme["signingName"] in S3_SIGNING_NAMES:
112
+ # S3 accepts UNSIGNED-PAYLOAD for any operation; streamed bodies rely on it.
113
+ unsigned_payload = True
114
+ else:
115
+ raise NotImplementedError(
116
+ "Currently we don't support signed chunked payloads, so buffer the body and "
117
+ "pass bytes as a workaround; chunked signed implementation coming soon"
118
+ )
119
+ return sign_sigv4(
120
+ req, ctx, unsigned_payload=unsigned_payload, event_stream=self._event_stream
121
+ )
@@ -1,4 +1,4 @@
1
- """AWS Signature Version 4 — single-chunk signing.
1
+ """AWS Signature Version 4 — single-chunk and event-stream signing.
2
2
 
3
3
  Reference:
4
4
  https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv-create-signed-request.html
@@ -15,7 +15,8 @@ import functools
15
15
  import hashlib
16
16
  import hmac
17
17
  import re
18
- from typing import Any, Literal, TypedDict
18
+ from collections.abc import AsyncIterator, Iterator
19
+ from typing import Any, Literal, TypedDict, cast
19
20
  from urllib.parse import quote, unquote
20
21
 
21
22
  import zapros
@@ -23,6 +24,9 @@ from pywhatwgurl import URLSearchParams
23
24
  from zapros import Headers, Request
24
25
  from zapros._utils import get_host_header_value
25
26
 
27
+ from .._iter import AnyIterator
28
+ from .._protocol.eventstream import HeaderValue, Message, encode_headers
29
+
26
30
 
27
31
  def build_sigv4_auth_scheme(
28
32
  signing_name: str, region: str | None, endpoint_scheme: dict[str, Any] | None = None
@@ -65,6 +69,10 @@ class SigV4AuthContext(TypedDict):
65
69
 
66
70
 
67
71
  _SIGV4_ALGORITHM = "AWS4-HMAC-SHA256"
72
+ # Per-event algorithm and request payload marker of a signed event stream.
73
+ _EVENT_ALGORITHM = "AWS4-HMAC-SHA256-PAYLOAD"
74
+ _EVENT_STREAM_PAYLOAD = "STREAMING-AWS4-HMAC-SHA256-EVENTS"
75
+ _AMZ_DATE_FORMAT = "%Y%m%dT%H%M%SZ"
68
76
  _EMPTY_PAYLOAD_SHA256 = hashlib.sha256(b"").hexdigest()
69
77
 
70
78
  # Headers excluded from the signed-headers set. Mirrors botocore's denylist:
@@ -95,9 +103,11 @@ _UNSIGNED_HEADERS = frozenset(
95
103
 
96
104
  _MULTI_SPACE = re.compile(r" +")
97
105
 
98
- # Services that require the payload hash to travel in ``x-amz-content-sha256``.
99
- # Other services sign the hash into the canonical request without sending it.
100
- _S3_SIGNING_NAMES = frozenset({"s3", "s3express", "s3-outposts", "s3-object-lambda"})
106
+ # Services that require the payload hash to travel in ``x-amz-content-sha256``
107
+ # on every request, and that accept ``UNSIGNED-PAYLOAD`` for any operation.
108
+ # Other services sign the hash into the canonical request without sending it,
109
+ # and only see the header when the payload is left unsigned.
110
+ S3_SIGNING_NAMES = frozenset({"s3", "s3express", "s3-outposts", "s3-object-lambda"})
101
111
 
102
112
 
103
113
  def _uri_encode(value: str) -> str:
@@ -231,12 +241,20 @@ def _canonical_query_from_pairs(pairs: list[tuple[str, str]]) -> str:
231
241
  def sign_sigv4(
232
242
  request: Request,
233
243
  ctx: SigV4AuthContext,
234
- body: bytes | None,
244
+ *,
245
+ unsigned_payload: bool = False,
246
+ event_stream: bool = False,
235
247
  ) -> Request:
236
248
  """Return a new ``Request`` carrying SigV4 single-chunk auth headers.
237
249
 
238
- Pass ``body=None`` to sign with ``UNSIGNED-PAYLOAD`` (streaming requests).
239
- The original ``request.body`` is forwarded unchanged in that case.
250
+ The payload hash covers ``request.body``, which must be ``bytes`` or
251
+ ``None``. ``unsigned_payload`` signs ``UNSIGNED-PAYLOAD`` instead and
252
+ forwards any body unchanged (streaming S3 requests and operations carrying
253
+ ``aws.auth#unsignedPayload``). ``event_stream`` signs a request event
254
+ stream: the ``STREAMING-AWS4-HMAC-SHA256-EVENTS`` marker stands in for the
255
+ payload hash and the body — an iterator of encoded event messages — is
256
+ wrapped in an :class:`EventStreamIterator` that signs every event with a
257
+ signature chained from this request's.
240
258
  """
241
259
  service = ctx["signing_name"]
242
260
  region = ctx["signing_region"]
@@ -250,21 +268,31 @@ def sign_sigv4(
250
268
  date_stamp = amz_date[:8]
251
269
  else:
252
270
  now = _amz_now()
253
- amz_date = now.strftime("%Y%m%dT%H%M%SZ")
271
+ amz_date = now.strftime(_AMZ_DATE_FORMAT)
254
272
  date_stamp = now.strftime("%Y%m%d")
255
273
  headers["X-Amz-Date"] = amz_date
256
274
 
257
- # Payload hash. For S3-family services, x-amz-content-sha256 is mandatory
258
- # and must be set BEFORE computing the canonical request (it gets signed).
275
+ # Payload hash. For S3-family services, x-amz-content-sha256 is mandatory;
276
+ # for every service it is the only way to announce an unsigned payload or
277
+ # an event stream.
278
+ # Either way it must be set BEFORE computing the canonical request (it
279
+ # gets signed).
259
280
  payload_hash = headers.get("X-Amz-Content-SHA256")
260
281
  if payload_hash is None:
261
- if body is None:
282
+ if event_stream:
283
+ payload_hash = _EVENT_STREAM_PAYLOAD
284
+ elif unsigned_payload:
262
285
  payload_hash = "UNSIGNED-PAYLOAD"
286
+ elif request.body is None:
287
+ payload_hash = _EMPTY_PAYLOAD_SHA256
288
+ elif isinstance(request.body, bytes):
289
+ payload_hash = hashlib.sha256(request.body).hexdigest()
263
290
  else:
264
- payload_hash = (
265
- hashlib.sha256(body).hexdigest() if body else _EMPTY_PAYLOAD_SHA256
291
+ raise TypeError(
292
+ "sign_sigv4 hashes a bytes body only; pass unsigned_payload=True "
293
+ "to send a streamed body without a payload hash"
266
294
  )
267
- if service in _S3_SIGNING_NAMES:
295
+ if service in S3_SIGNING_NAMES or unsigned_payload or event_stream:
268
296
  headers["X-Amz-Content-SHA256"] = payload_hash
269
297
 
270
298
  # Session token (STS / assumed-role credentials).
@@ -308,18 +336,135 @@ def sign_sigv4(
308
336
  f"Signature={signature}"
309
337
  )
310
338
 
311
- effective_body = body if body is not None else request.body
312
- if effective_body is not None:
339
+ body = request.body
340
+ if event_stream:
341
+ if not isinstance(body, (Iterator, AsyncIterator)):
342
+ raise TypeError(
343
+ "event_stream requires an iterator of encoded events as the body"
344
+ )
345
+ body = EventStreamIterator(
346
+ cast("Iterator[bytes] | AsyncIterator[bytes]", body), ctx, signature
347
+ )
348
+ if body is not None:
313
349
  return Request(
314
350
  request.url,
315
351
  request.method,
316
352
  headers,
317
- body=effective_body,
353
+ body=body,
318
354
  context=request.context,
319
355
  )
320
356
  return Request(request.url, request.method, headers, context=request.context)
321
357
 
322
358
 
359
+ def _sign_event(
360
+ ctx: SigV4AuthContext, prior_signature: str, payload: bytes
361
+ ) -> tuple[bytes, str]:
362
+ """Wrap one encoded event in a signed outer message.
363
+
364
+ Returns ``(frame, signature)``; the hex signature seeds the next event.
365
+ The string to sign chains every frame to its predecessor — the first one
366
+ to the request's ``Authorization`` signature — so the service can verify
367
+ the stream incrementally::
368
+
369
+ AWS4-HMAC-SHA256-PAYLOAD
370
+ <date, YYYYMMDDTHHMMSSZ>
371
+ <credential scope>
372
+ <prior signature, hex>
373
+ <hex sha256 of the encoded ``:date`` header>
374
+ <hex sha256 of the payload>
375
+
376
+ The AWS SDKs (and the service) use the ``-PAYLOAD`` algorithm name; the
377
+ Transcribe developer guide's pseudocode omits the suffix.
378
+ """
379
+ service = ctx["signing_name"]
380
+ region = ctx["signing_region"]
381
+ now = _amz_now()
382
+ amz_date = now.strftime(_AMZ_DATE_FORMAT)
383
+ date_stamp = amz_date[:8]
384
+ credential_scope = f"{date_stamp}/{region}/{service}/aws4_request"
385
+ date_header: dict[str, HeaderValue] = {":date": now}
386
+ string_to_sign = "\n".join(
387
+ (
388
+ _EVENT_ALGORITHM,
389
+ amz_date,
390
+ credential_scope,
391
+ prior_signature,
392
+ hashlib.sha256(encode_headers(date_header)).hexdigest(),
393
+ hashlib.sha256(payload).hexdigest(),
394
+ )
395
+ )
396
+ signing_key = _derive_signing_key(
397
+ ctx["secret_access_key"], date_stamp, region, service
398
+ )
399
+ signature = hmac.new(
400
+ signing_key, string_to_sign.encode("utf-8"), hashlib.sha256
401
+ ).hexdigest()
402
+ frame = Message(
403
+ {**date_header, ":chunk-signature": bytes.fromhex(signature)}, payload
404
+ ).encode()
405
+ return frame, signature
406
+
407
+
408
+ class EventStreamIterator(AnyIterator[bytes]):
409
+ """Sign a request event stream, one frame per event.
410
+
411
+ Wraps an iterator of encoded event messages (as produced by the generated
412
+ ``serialize_event_*`` functions). Each event becomes the payload of an
413
+ outer message carrying ``:date`` and ``:chunk-signature`` headers, the
414
+ signature chained from the previous frame's and seeded by the request's
415
+ ``Authorization`` signature. Once the events are exhausted, one empty
416
+ signed frame is yielded to mark the end of the stream.
417
+
418
+ Like :class:`~capo._body.Body`, it is both a sync and an async iterator:
419
+ iterate it the way the wrapped source is iterable (``next`` over a sync
420
+ source, ``async for`` over an async one).
421
+
422
+ Reference:
423
+ https://docs.aws.amazon.com/transcribe/latest/dg/streaming-setting-up.html
424
+ """
425
+
426
+ def __init__(
427
+ self,
428
+ events: Iterator[bytes] | AsyncIterator[bytes],
429
+ ctx: SigV4AuthContext,
430
+ seed_signature: str,
431
+ ) -> None:
432
+ self._events = events
433
+ self._ctx = ctx
434
+ self._prior_signature = seed_signature
435
+ self._ended = False
436
+
437
+ def _frame(self, payload: bytes) -> bytes:
438
+ frame, self._prior_signature = _sign_event(
439
+ self._ctx, self._prior_signature, payload
440
+ )
441
+ return frame
442
+
443
+ def __next__(self) -> bytes:
444
+ if self._ended:
445
+ raise StopIteration
446
+ if not isinstance(self._events, Iterator):
447
+ raise TypeError("this event stream wraps an async source; use `async for`")
448
+ try:
449
+ payload = next(cast(Iterator[bytes], self._events))
450
+ except StopIteration:
451
+ self._ended = True
452
+ payload = b""
453
+ return self._frame(payload)
454
+
455
+ async def __anext__(self) -> bytes:
456
+ if self._ended:
457
+ raise StopAsyncIteration
458
+ if not isinstance(self._events, AsyncIterator):
459
+ raise TypeError("this event stream wraps a sync source; use `for`")
460
+ try:
461
+ payload = await cast(AsyncIterator[bytes], self._events).__anext__()
462
+ except StopAsyncIteration:
463
+ self._ended = True
464
+ payload = b""
465
+ return self._frame(payload)
466
+
467
+
323
468
  def presign_sigv4(
324
469
  request: Request,
325
470
  ctx: SigV4AuthContext,
@@ -346,7 +491,7 @@ def presign_sigv4(
346
491
  service = ctx["signing_name"]
347
492
  region = ctx["signing_region"]
348
493
 
349
- amz_date = sign_time.strftime("%Y%m%dT%H%M%SZ")
494
+ amz_date = sign_time.strftime(_AMZ_DATE_FORMAT)
350
495
  date_stamp = sign_time.strftime("%Y%m%d")
351
496
  credential_scope = f"{date_stamp}/{region}/{service}/aws4_request"
352
497
 
@@ -20,7 +20,11 @@ import capo_backup.errors.service_unavailable_exception
20
20
  import capo_backup.types.associate_backup_vault_mpa_approval_team_input
21
21
  from capo_backup._protocol.errors import parse_error_metadata_json
22
22
  from capo_backup._rule_engine._endpoint_rule_set import EndpointParams, resolve
23
- from capo_backup._services._pipeline import AsyncOperationOptions, OperationOptions
23
+ from capo_backup._services._pipeline import (
24
+ AsyncOperationOptions,
25
+ OperationOptions,
26
+ raise_error,
27
+ )
24
28
  from capo_backup.errors import UnknownServiceError
25
29
 
26
30
 
@@ -120,7 +124,7 @@ def associate_backup_vault_mpa_approval_team(
120
124
  try:
121
125
  if response.status >= 300:
122
126
  response.read()
123
- handle_error(response)
127
+ raise_error(response, handle_error)
124
128
  return None, response
125
129
  except BaseException:
126
130
  response.close()
@@ -135,7 +139,7 @@ async def async_associate_backup_vault_mpa_approval_team(
135
139
  try:
136
140
  if response.status >= 300:
137
141
  await response.aread()
138
- handle_error(response)
142
+ raise_error(response, handle_error)
139
143
  return None, response
140
144
  except BaseException:
141
145
  await response.aclose()
@@ -21,7 +21,11 @@ import capo_backup.types.cancel_legal_hold_input
21
21
  import capo_backup.types.cancel_legal_hold_output
22
22
  from capo_backup._protocol.errors import parse_error_metadata_json
23
23
  from capo_backup._rule_engine._endpoint_rule_set import EndpointParams, resolve
24
- from capo_backup._services._pipeline import AsyncOperationOptions, OperationOptions
24
+ from capo_backup._services._pipeline import (
25
+ AsyncOperationOptions,
26
+ OperationOptions,
27
+ raise_error,
28
+ )
25
29
  from capo_backup.errors import UnknownServiceError
26
30
 
27
31
 
@@ -135,7 +139,7 @@ def cancel_legal_hold(
135
139
  try:
136
140
  if response.status >= 300:
137
141
  response.read()
138
- handle_error(response)
142
+ raise_error(response, handle_error)
139
143
  return handle_response(response), response
140
144
  except BaseException:
141
145
  response.close()
@@ -152,7 +156,7 @@ async def async_cancel_legal_hold(
152
156
  try:
153
157
  if response.status >= 300:
154
158
  await response.aread()
155
- handle_error(response)
159
+ raise_error(response, handle_error)
156
160
  return await async_handle_response(response), response
157
161
  except BaseException:
158
162
  await response.aclose()
@@ -0,0 +1,185 @@
1
+ """Generated from Smithy shape ``com.amazonaws.backup#CreateBackupAccessPoint``."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import json
6
+ from typing import Any
7
+
8
+ import zapros
9
+ from typing_extensions import Never
10
+
11
+ import capo_backup._auth._signers
12
+ import capo_backup._auth._sigv4
13
+ import capo_backup._protocol.eventstream
14
+ import capo_backup.errors.already_exists_exception
15
+ import capo_backup.errors.conflict_exception
16
+ import capo_backup.errors.invalid_parameter_value_exception
17
+ import capo_backup.errors.invalid_request_exception
18
+ import capo_backup.errors.limit_exceeded_exception
19
+ import capo_backup.errors.missing_parameter_value_exception
20
+ import capo_backup.errors.resource_not_found_exception
21
+ import capo_backup.errors.service_unavailable_exception
22
+ import capo_backup.types.access_point_metadata_map
23
+ import capo_backup.types.access_point_status
24
+ import capo_backup.types.create_backup_access_point_request
25
+ import capo_backup.types.create_backup_access_point_response
26
+ import capo_backup.types.tag_map
27
+ from capo_backup._protocol.errors import parse_error_metadata_json
28
+ from capo_backup._rule_engine._endpoint_rule_set import EndpointParams, resolve
29
+ from capo_backup._services._pipeline import (
30
+ AsyncOperationOptions,
31
+ OperationOptions,
32
+ raise_error,
33
+ )
34
+ from capo_backup.errors import UnknownServiceError
35
+
36
+
37
+ def handle_error(response: zapros.Response) -> Never:
38
+ data = json.loads(response.read())
39
+ code, message = parse_error_metadata_json(response, data)
40
+ match code:
41
+ case "AlreadyExistsException":
42
+ raise capo_backup.errors.already_exists_exception.AlreadyExistsException.from_json(
43
+ data, message
44
+ )
45
+ case "ConflictException":
46
+ raise capo_backup.errors.conflict_exception.ConflictException.from_json(
47
+ data, message
48
+ )
49
+ case "InvalidParameterValueException":
50
+ raise capo_backup.errors.invalid_parameter_value_exception.InvalidParameterValueException.from_json(
51
+ data, message
52
+ )
53
+ case "InvalidRequestException":
54
+ raise capo_backup.errors.invalid_request_exception.InvalidRequestException.from_json(
55
+ data, message
56
+ )
57
+ case "LimitExceededException":
58
+ raise capo_backup.errors.limit_exceeded_exception.LimitExceededException.from_json(
59
+ data, message
60
+ )
61
+ case "MissingParameterValueException":
62
+ raise capo_backup.errors.missing_parameter_value_exception.MissingParameterValueException.from_json(
63
+ data, message
64
+ )
65
+ case "ResourceNotFoundException":
66
+ raise capo_backup.errors.resource_not_found_exception.ResourceNotFoundException.from_json(
67
+ data, message
68
+ )
69
+ case "ServiceUnavailableException":
70
+ raise capo_backup.errors.service_unavailable_exception.ServiceUnavailableException.from_json(
71
+ data, message
72
+ )
73
+ case _:
74
+ raise UnknownServiceError(code=code, message=message, response=response)
75
+
76
+
77
+ def handle_response(
78
+ response: zapros.Response,
79
+ ) -> capo_backup.types.create_backup_access_point_response.CreateBackupAccessPointResponse:
80
+ out: capo_backup.types.create_backup_access_point_response.CreateBackupAccessPointResponse = capo_backup.types.create_backup_access_point_response.deserialize_json(
81
+ json.loads(response.read())
82
+ )
83
+ return out
84
+
85
+
86
+ async def async_handle_response(
87
+ response: zapros.Response,
88
+ ) -> capo_backup.types.create_backup_access_point_response.CreateBackupAccessPointResponse:
89
+ out: capo_backup.types.create_backup_access_point_response.CreateBackupAccessPointResponse = capo_backup.types.create_backup_access_point_response.deserialize_json(
90
+ json.loads(await response.aread())
91
+ )
92
+ return out
93
+
94
+
95
+ def get_signer(
96
+ options: AsyncOperationOptions | OperationOptions,
97
+ auth_schemes: list[dict[str, Any]] | None = None,
98
+ ) -> capo_backup._auth._signers.Signer | None:
99
+ name_to_schema = {s["name"]: s for s in (auth_schemes or [])} # noqa: F841
100
+ if (
101
+ options.credentials_provider is not None
102
+ and name_to_schema
103
+ and not name_to_schema.keys() & {"sigv4", "sigv4-s3express"}
104
+ ):
105
+ raise RuntimeError(
106
+ "Endpoint requires an unsupported auth scheme: " + ", ".join(name_to_schema)
107
+ )
108
+ if options.credentials_provider is not None:
109
+ endpoint_scheme = name_to_schema.get("sigv4") or name_to_schema.get(
110
+ "sigv4-s3express"
111
+ )
112
+ if endpoint_scheme is not None or not name_to_schema:
113
+ sigv4_config = capo_backup._auth._sigv4.build_sigv4_auth_scheme(
114
+ "backup", options.region, endpoint_scheme
115
+ )
116
+ if sigv4_config is not None:
117
+ return capo_backup._auth._signers.SigV4Signer(
118
+ options.credentials_provider, auth_scheme=sigv4_config
119
+ )
120
+ raise RuntimeError("Auth was not resolved")
121
+
122
+
123
+ def build_request(
124
+ options: OperationOptions | AsyncOperationOptions,
125
+ input_: capo_backup.types.create_backup_access_point_request.CreateBackupAccessPointRequest,
126
+ ) -> zapros.Request:
127
+ endpoint = resolve(
128
+ EndpointParams(
129
+ Region=options.region,
130
+ UseDualStack=options.use_dual_stack,
131
+ UseFIPS=options.use_fips,
132
+ Endpoint=options.endpoint,
133
+ )
134
+ ) # noqa: F841
135
+ url = endpoint.url.rstrip("/") + "/backup-access-point/create"
136
+ params: list[tuple[str, str]] = []
137
+ headers: dict[str, str] = {k: ", ".join(v) for k, v in endpoint.headers.items()}
138
+ body: bytes | None = json.dumps(
139
+ capo_backup.types.create_backup_access_point_request.serialize_json(input_),
140
+ allow_nan=False,
141
+ ).encode()
142
+ headers["content-type"] = "application/json"
143
+ signer = get_signer(options, auth_schemes=endpoint.properties.get("authSchemes"))
144
+ normalized_url = zapros.URL(url)
145
+ for k, v in params:
146
+ normalized_url.search_params.append(k, v)
147
+ return zapros.Request(
148
+ normalized_url, "PUT", headers=headers, body=body, context={"signer": signer}
149
+ )
150
+
151
+
152
+ def create_backup_access_point(
153
+ options: OperationOptions,
154
+ input_: capo_backup.types.create_backup_access_point_request.CreateBackupAccessPointRequest,
155
+ ) -> tuple[
156
+ capo_backup.types.create_backup_access_point_response.CreateBackupAccessPointResponse,
157
+ zapros.Response,
158
+ ]:
159
+ response = options.client.handler.handle(build_request(options, input_))
160
+ try:
161
+ if response.status >= 300:
162
+ response.read()
163
+ raise_error(response, handle_error)
164
+ return handle_response(response), response
165
+ except BaseException:
166
+ response.close()
167
+ raise
168
+
169
+
170
+ async def async_create_backup_access_point(
171
+ options: AsyncOperationOptions,
172
+ input_: capo_backup.types.create_backup_access_point_request.CreateBackupAccessPointRequest,
173
+ ) -> tuple[
174
+ capo_backup.types.create_backup_access_point_response.CreateBackupAccessPointResponse,
175
+ zapros.Response,
176
+ ]:
177
+ response = await options.client.handler.ahandle(build_request(options, input_))
178
+ try:
179
+ if response.status >= 300:
180
+ await response.aread()
181
+ raise_error(response, handle_error)
182
+ return await async_handle_response(response), response
183
+ except BaseException:
184
+ await response.aclose()
185
+ raise
@@ -24,7 +24,11 @@ import capo_backup.types.tags
24
24
  import capo_backup.types.timestamp
25
25
  from capo_backup._protocol.errors import parse_error_metadata_json
26
26
  from capo_backup._rule_engine._endpoint_rule_set import EndpointParams, resolve
27
- from capo_backup._services._pipeline import AsyncOperationOptions, OperationOptions
27
+ from capo_backup._services._pipeline import (
28
+ AsyncOperationOptions,
29
+ OperationOptions,
30
+ raise_error,
31
+ )
28
32
  from capo_backup.errors import UnknownServiceError
29
33
 
30
34
 
@@ -145,7 +149,7 @@ def create_backup_plan(
145
149
  try:
146
150
  if response.status >= 300:
147
151
  response.read()
148
- handle_error(response)
152
+ raise_error(response, handle_error)
149
153
  return handle_response(response), response
150
154
  except BaseException:
151
155
  response.close()
@@ -162,7 +166,7 @@ async def async_create_backup_plan(
162
166
  try:
163
167
  if response.status >= 300:
164
168
  await response.aread()
165
- handle_error(response)
169
+ raise_error(response, handle_error)
166
170
  return await async_handle_response(response), response
167
171
  except BaseException:
168
172
  await response.aclose()