capo-codecommit 0.1.0__tar.gz → 0.3.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.
- {capo_codecommit-0.1.0/src/capo_codecommit.egg-info → capo_codecommit-0.3.0}/PKG-INFO +3 -1
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/pyproject.toml +3 -1
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/__init__.py +1 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_auth/_signers.py +50 -17
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_auth/_sigv4.py +164 -19
- capo_codecommit-0.3.0/src/capo_codecommit/_body.py +221 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_protocol/eventstream.py +15 -13
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_services/_pipeline.py +51 -2
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0/src/capo_codecommit.egg-info}/PKG-INFO +3 -1
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit.egg-info/SOURCES.txt +2 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit.egg-info/requires.txt +3 -0
- capo_codecommit-0.3.0/tests/test_body.py +225 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/tests/test_sigv4.py +217 -16
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/LICENSE +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/README.md +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/setup.cfg +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_async.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_auth/_identity.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_auth/_providers.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_auth/_zapros_handler.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_iter.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/associate_approval_rule_template_with_repository.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/batch_associate_approval_rule_template_with_repositories.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/batch_describe_merge_conflicts.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/batch_disassociate_approval_rule_template_from_repositories.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/batch_get_commits.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/batch_get_repositories.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/create_approval_rule_template.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/create_branch.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/create_commit.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/create_pull_request.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/create_pull_request_approval_rule.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/create_repository.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/create_unreferenced_merge_commit.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/delete_approval_rule_template.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/delete_branch.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/delete_comment_content.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/delete_file.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/delete_pull_request_approval_rule.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/delete_repository.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/describe_merge_conflicts.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/describe_pull_request_events.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/disassociate_approval_rule_template_from_repository.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/evaluate_pull_request_approval_rules.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/get_approval_rule_template.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/get_blob.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/get_branch.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/get_comment.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/get_comment_reactions.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/get_comments_for_compared_commit.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/get_comments_for_pull_request.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/get_commit.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/get_differences.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/get_file.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/get_folder.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/get_merge_commit.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/get_merge_conflicts.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/get_merge_options.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/get_pull_request.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/get_pull_request_approval_states.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/get_pull_request_override_state.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/get_repository.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/get_repository_triggers.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/list_approval_rule_templates.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/list_associated_approval_rule_templates_for_repository.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/list_branches.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/list_file_commit_history.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/list_pull_requests.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/list_repositories.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/list_repositories_for_approval_rule_template.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/list_tags_for_resource.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/merge_branches_by_fast_forward.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/merge_branches_by_squash.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/merge_branches_by_three_way.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/merge_pull_request_by_fast_forward.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/merge_pull_request_by_squash.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/merge_pull_request_by_three_way.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/override_pull_request_approval_rules.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/post_comment_for_compared_commit.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/post_comment_for_pull_request.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/post_comment_reply.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/put_comment_reaction.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/put_file.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/put_repository_triggers.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/tag_resource.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/test_repository_triggers.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/untag_resource.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/update_approval_rule_template_content.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/update_approval_rule_template_description.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/update_approval_rule_template_name.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/update_comment.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/update_default_branch.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/update_pull_request_approval_rule_content.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/update_pull_request_approval_state.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/update_pull_request_description.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/update_pull_request_status.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/update_pull_request_title.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/update_repository_description.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/update_repository_encryption_key.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_operations/code_commit_20150413/update_repository_name.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_pagination.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_protocol/__init__.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_protocol/errors.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_protocol/serialize.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_protocol/xml.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_rule_engine/__init__.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_rule_engine/_aws_partition.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_rule_engine/_endpoint_rule_set.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_rule_engine/_endpoint_runtime.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_services/_aws_config.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_services/async_code_commit.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/_services/code_commit.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/__init__.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/_base.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/actor_does_not_exist_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/approval_rule_content_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/approval_rule_does_not_exist_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/approval_rule_name_already_exists_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/approval_rule_name_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/approval_rule_template_content_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/approval_rule_template_does_not_exist_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/approval_rule_template_in_use_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/approval_rule_template_name_already_exists_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/approval_rule_template_name_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/approval_state_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/author_does_not_exist_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/before_commit_id_and_after_commit_id_are_same_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/blob_id_does_not_exist_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/blob_id_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/branch_does_not_exist_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/branch_name_exists_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/branch_name_is_tag_name_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/branch_name_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/cannot_delete_approval_rule_from_template_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/cannot_modify_approval_rule_from_template_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/client_request_token_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/comment_content_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/comment_content_size_limit_exceeded_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/comment_deleted_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/comment_does_not_exist_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/comment_id_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/comment_not_created_by_caller_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/commit_does_not_exist_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/commit_id_does_not_exist_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/commit_id_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/commit_ids_limit_exceeded_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/commit_ids_list_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/commit_message_length_exceeded_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/commit_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/concurrent_reference_update_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/default_branch_cannot_be_deleted_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/directory_name_conflicts_with_file_name_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/encryption_integrity_checks_failed_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/encryption_key_access_denied_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/encryption_key_disabled_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/encryption_key_invalid_id_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/encryption_key_invalid_usage_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/encryption_key_not_found_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/encryption_key_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/encryption_key_unavailable_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/file_content_and_source_file_specified_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/file_content_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/file_content_size_limit_exceeded_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/file_does_not_exist_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/file_entry_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/file_mode_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/file_name_conflicts_with_directory_name_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/file_path_conflicts_with_submodule_path_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/file_too_large_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/folder_content_size_limit_exceeded_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/folder_does_not_exist_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/idempotency_parameter_mismatch_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_actor_arn_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_approval_rule_content_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_approval_rule_name_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_approval_rule_template_content_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_approval_rule_template_description_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_approval_rule_template_name_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_approval_state_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_author_arn_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_blob_id_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_branch_name_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_client_request_token_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_comment_id_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_commit_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_commit_id_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_conflict_detail_level_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_conflict_resolution_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_conflict_resolution_strategy_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_continuation_token_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_deletion_parameter_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_description_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_destination_commit_specifier_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_email_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_file_location_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_file_mode_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_file_position_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_max_conflict_files_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_max_merge_hunks_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_max_results_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_merge_option_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_order_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_override_status_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_parent_commit_id_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_path_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_pull_request_event_type_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_pull_request_id_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_pull_request_status_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_pull_request_status_update_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_reaction_user_arn_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_reaction_value_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_reference_name_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_relative_file_version_enum_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_replacement_content_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_replacement_type_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_repository_description_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_repository_name_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_repository_trigger_branch_name_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_repository_trigger_custom_data_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_repository_trigger_destination_arn_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_repository_trigger_events_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_repository_trigger_name_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_repository_trigger_region_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_resource_arn_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_revision_id_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_rule_content_sha256_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_sort_by_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_source_commit_specifier_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_system_tag_usage_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_tag_keys_list_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_tags_map_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_target_branch_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_target_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_targets_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/invalid_title_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/manual_merge_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/maximum_branches_exceeded_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/maximum_conflict_resolution_entries_exceeded_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/maximum_file_content_to_load_exceeded_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/maximum_file_entries_exceeded_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/maximum_items_to_compare_exceeded_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/maximum_number_of_approvals_exceeded_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/maximum_open_pull_requests_exceeded_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/maximum_repository_names_exceeded_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/maximum_repository_triggers_exceeded_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/maximum_rule_templates_associated_with_repository_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/merge_option_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/multiple_conflict_resolution_entries_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/multiple_repositories_in_pull_request_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/name_length_exceeded_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/no_change_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/number_of_rule_templates_exceeded_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/number_of_rules_exceeded_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/operation_not_allowed_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/override_already_set_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/override_status_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/parent_commit_does_not_exist_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/parent_commit_id_outdated_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/parent_commit_id_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/path_does_not_exist_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/path_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/pull_request_already_closed_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/pull_request_approval_rules_not_satisfied_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/pull_request_cannot_be_approved_by_author_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/pull_request_does_not_exist_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/pull_request_id_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/pull_request_status_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/put_file_entry_conflict_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/reaction_limit_exceeded_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/reaction_value_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/reference_does_not_exist_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/reference_name_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/reference_type_not_supported_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/replacement_content_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/replacement_type_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/repository_does_not_exist_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/repository_limit_exceeded_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/repository_name_exists_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/repository_name_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/repository_names_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/repository_not_associated_with_pull_request_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/repository_trigger_branch_name_list_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/repository_trigger_destination_arn_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/repository_trigger_events_list_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/repository_trigger_name_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/repository_triggers_list_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/resource_arn_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/restricted_source_file_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/revision_id_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/revision_not_current_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/same_file_content_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/same_path_request_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/source_and_destination_are_same_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/source_file_or_content_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/tag_keys_list_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/tag_policy_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/tags_map_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/target_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/targets_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/tip_of_source_reference_is_different_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/tips_divergence_exceeded_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/title_required_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/errors/too_many_tags_exception.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/py.typed +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/_prelude/blob.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/_prelude/timestamp.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/account_id.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/additional_data.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/approval.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/approval_list.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/approval_rule.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/approval_rule_content.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/approval_rule_event_metadata.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/approval_rule_id.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/approval_rule_name.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/approval_rule_overridden_event_metadata.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/approval_rule_template.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/approval_rule_template_content.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/approval_rule_template_description.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/approval_rule_template_id.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/approval_rule_template_name.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/approval_rule_template_name_list.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/approval_rules_list.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/approval_rules_not_satisfied_list.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/approval_rules_satisfied_list.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/approval_state.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/approval_state_changed_event_metadata.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/approved.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/arn.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/associate_approval_rule_template_with_repository_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/batch_associate_approval_rule_template_with_repositories_error.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/batch_associate_approval_rule_template_with_repositories_errors_list.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/batch_associate_approval_rule_template_with_repositories_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/batch_associate_approval_rule_template_with_repositories_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/batch_describe_merge_conflicts_error.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/batch_describe_merge_conflicts_errors.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/batch_describe_merge_conflicts_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/batch_describe_merge_conflicts_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/batch_disassociate_approval_rule_template_from_repositories_error.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/batch_disassociate_approval_rule_template_from_repositories_errors_list.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/batch_disassociate_approval_rule_template_from_repositories_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/batch_disassociate_approval_rule_template_from_repositories_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/batch_get_commits_error.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/batch_get_commits_errors_list.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/batch_get_commits_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/batch_get_commits_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/batch_get_repositories_error.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/batch_get_repositories_error_code_enum.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/batch_get_repositories_errors_list.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/batch_get_repositories_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/batch_get_repositories_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/blob.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/blob_metadata.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/branch_info.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/branch_name.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/branch_name_list.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/caller_reactions.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/capital_boolean.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/change_type_enum.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/client_request_token.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/clone_url_http.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/clone_url_ssh.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/comment.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/comment_id.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/comments.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/comments_for_compared_commit.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/comments_for_compared_commit_data.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/comments_for_pull_request.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/comments_for_pull_request_data.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/commit.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/commit_id.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/commit_ids_input_list.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/commit_name.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/commit_objects_list.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/conflict.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/conflict_detail_level_type_enum.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/conflict_metadata.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/conflict_metadata_list.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/conflict_resolution.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/conflict_resolution_strategy_type_enum.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/conflicts.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/content.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/count.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/create_approval_rule_template_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/create_approval_rule_template_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/create_branch_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/create_commit_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/create_commit_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/create_pull_request_approval_rule_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/create_pull_request_approval_rule_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/create_pull_request_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/create_pull_request_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/create_repository_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/create_repository_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/create_unreferenced_merge_commit_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/create_unreferenced_merge_commit_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/creation_date.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/date.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/delete_approval_rule_template_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/delete_approval_rule_template_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/delete_branch_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/delete_branch_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/delete_comment_content_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/delete_comment_content_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/delete_file_entries.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/delete_file_entry.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/delete_file_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/delete_file_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/delete_pull_request_approval_rule_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/delete_pull_request_approval_rule_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/delete_repository_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/delete_repository_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/describe_merge_conflicts_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/describe_merge_conflicts_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/describe_pull_request_events_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/describe_pull_request_events_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/description.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/difference.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/difference_list.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/disassociate_approval_rule_template_from_repository_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/email.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/error_code.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/error_message.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/evaluate_pull_request_approval_rules_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/evaluate_pull_request_approval_rules_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/evaluation.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/event_date.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/exception_name.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/file.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/file_content.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/file_list.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/file_metadata.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/file_mode_type_enum.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/file_modes.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/file_paths.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/file_size.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/file_sizes.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/file_version.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/files_metadata.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/folder.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/folder_list.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_approval_rule_template_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_approval_rule_template_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_blob_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_blob_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_branch_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_branch_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_comment_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_comment_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_comment_reactions_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_comment_reactions_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_comments_for_compared_commit_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_comments_for_compared_commit_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_comments_for_pull_request_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_comments_for_pull_request_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_commit_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_commit_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_differences_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_differences_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_file_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_file_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_folder_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_folder_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_merge_commit_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_merge_commit_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_merge_conflicts_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_merge_conflicts_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_merge_options_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_merge_options_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_pull_request_approval_states_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_pull_request_approval_states_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_pull_request_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_pull_request_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_pull_request_override_state_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_pull_request_override_state_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_repository_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_repository_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_repository_triggers_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/get_repository_triggers_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/hunk_content.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/is_binary_file.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/is_comment_deleted.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/is_content_conflict.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/is_file_mode_conflict.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/is_hunk_conflict.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/is_mergeable.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/is_merged.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/is_move.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/is_object_type_conflict.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/keep_empty_folders.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/kms_key_id.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/last_modified_date.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/limit.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/line_number.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/list_approval_rule_templates_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/list_approval_rule_templates_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/list_associated_approval_rule_templates_for_repository_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/list_associated_approval_rule_templates_for_repository_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/list_branches_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/list_branches_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/list_file_commit_history_request.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/list_file_commit_history_response.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/list_pull_requests_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/list_pull_requests_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/list_repositories_for_approval_rule_template_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/list_repositories_for_approval_rule_template_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/list_repositories_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/list_repositories_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/list_tags_for_resource_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/list_tags_for_resource_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/location.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/max_results.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/merge_branches_by_fast_forward_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/merge_branches_by_fast_forward_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/merge_branches_by_squash_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/merge_branches_by_squash_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/merge_branches_by_three_way_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/merge_branches_by_three_way_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/merge_hunk.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/merge_hunk_detail.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/merge_hunks.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/merge_metadata.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/merge_operations.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/merge_option_type_enum.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/merge_options.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/merge_pull_request_by_fast_forward_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/merge_pull_request_by_fast_forward_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/merge_pull_request_by_squash_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/merge_pull_request_by_squash_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/merge_pull_request_by_three_way_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/merge_pull_request_by_three_way_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/message.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/mode.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/name.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/next_token.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/number_of_conflicts.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/object_id.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/object_size.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/object_type_enum.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/object_types.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/order_enum.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/origin_approval_rule_template.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/overridden.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/override_pull_request_approval_rules_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/override_status.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/parent_list.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/path.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/position.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/post_comment_for_compared_commit_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/post_comment_for_compared_commit_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/post_comment_for_pull_request_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/post_comment_for_pull_request_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/post_comment_reply_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/post_comment_reply_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/pull_request.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/pull_request_created_event_metadata.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/pull_request_event.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/pull_request_event_list.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/pull_request_event_type.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/pull_request_id.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/pull_request_id_list.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/pull_request_merged_state_changed_event_metadata.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/pull_request_source_reference_updated_event_metadata.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/pull_request_status_changed_event_metadata.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/pull_request_status_enum.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/pull_request_target.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/pull_request_target_list.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/put_comment_reaction_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/put_file_entries.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/put_file_entry.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/put_file_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/put_file_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/put_repository_triggers_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/put_repository_triggers_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/reaction_counts_map.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/reaction_emoji.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/reaction_for_comment.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/reaction_short_code.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/reaction_unicode.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/reaction_users_list.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/reaction_value.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/reaction_value_formats.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/reactions_for_comment_list.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/reference_name.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/relative_file_version_enum.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/replace_content_entries.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/replace_content_entry.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/replacement_type_enum.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/repository_description.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/repository_id.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/repository_metadata.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/repository_metadata_list.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/repository_name.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/repository_name_id_pair.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/repository_name_id_pair_list.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/repository_name_list.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/repository_not_found_list.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/repository_trigger.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/repository_trigger_custom_data.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/repository_trigger_event_enum.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/repository_trigger_event_list.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/repository_trigger_execution_failure.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/repository_trigger_execution_failure_list.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/repository_trigger_execution_failure_message.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/repository_trigger_name.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/repository_trigger_name_list.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/repository_triggers_configuration_id.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/repository_triggers_list.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/resource_arn.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/revision_children.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/revision_dag.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/revision_id.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/rule_content_sha256.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/set_file_mode_entries.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/set_file_mode_entry.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/sort_by_enum.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/source_file_specifier.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/sub_module.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/sub_module_list.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/symbolic_link.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/symbolic_link_list.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/tag_key.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/tag_keys_list.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/tag_resource_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/tag_value.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/tags_map.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/target.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/target_list.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/test_repository_triggers_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/test_repository_triggers_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/title.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/untag_resource_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/update_approval_rule_template_content_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/update_approval_rule_template_content_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/update_approval_rule_template_description_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/update_approval_rule_template_description_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/update_approval_rule_template_name_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/update_approval_rule_template_name_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/update_comment_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/update_comment_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/update_default_branch_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/update_pull_request_approval_rule_content_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/update_pull_request_approval_rule_content_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/update_pull_request_approval_state_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/update_pull_request_description_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/update_pull_request_description_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/update_pull_request_status_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/update_pull_request_status_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/update_pull_request_title_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/update_pull_request_title_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/update_repository_description_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/update_repository_encryption_key_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/update_repository_encryption_key_output.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/update_repository_name_input.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit/types/user_info.py +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit.egg-info/dependency_links.txt +0 -0
- {capo_codecommit-0.1.0 → capo_codecommit-0.3.0}/src/capo_codecommit.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: capo-codecommit
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
4
4
|
Summary: Python SDK for Codecommit.
|
|
5
5
|
Classifier: Development Status :: 4 - Beta
|
|
6
6
|
Classifier: Intended Audience :: Developers
|
|
@@ -18,6 +18,8 @@ Requires-Python: >=3.10
|
|
|
18
18
|
Description-Content-Type: text/markdown
|
|
19
19
|
License-File: LICENSE
|
|
20
20
|
Requires-Dist: zapros>=0.13.0
|
|
21
|
+
Provides-Extra: anyio
|
|
22
|
+
Requires-Dist: anyio>=3.0; extra == "anyio"
|
|
21
23
|
Provides-Extra: sso
|
|
22
24
|
Requires-Dist: capo-sso>=0.2.0; extra == "sso"
|
|
23
25
|
Requires-Dist: capo-sso-oidc>=0.2.0; extra == "sso"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "capo-codecommit"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.3.0"
|
|
4
4
|
description = "Python SDK for Codecommit."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.10"
|
|
@@ -23,6 +23,8 @@ dependencies = [
|
|
|
23
23
|
]
|
|
24
24
|
|
|
25
25
|
[project.optional-dependencies]
|
|
26
|
+
# Async file request bodies via Body.async_from_path
|
|
27
|
+
anyio = ["anyio>=3.0"]
|
|
26
28
|
# IAM Identity Center (SSO), assume-role and web-identity credentials providers
|
|
27
29
|
sso = [
|
|
28
30
|
"capo-sso>=0.2.0",
|
|
@@ -48,6 +48,7 @@ from ._auth._providers import (
|
|
|
48
48
|
)
|
|
49
49
|
from ._auth._signers import Signer as Signer
|
|
50
50
|
from ._auth._signers import SigV4Signer as SigV4Signer
|
|
51
|
+
from ._body import Body as Body
|
|
51
52
|
from ._services._pipeline import (
|
|
52
53
|
AsyncOperationOptions as AsyncOperationOptions,
|
|
53
54
|
)
|
|
@@ -7,7 +7,7 @@ from zapros import Request
|
|
|
7
7
|
|
|
8
8
|
from capo_codecommit._auth._identity import Credentials, Identity
|
|
9
9
|
from capo_codecommit._auth._providers import IdentityProvider
|
|
10
|
-
from capo_codecommit._auth._sigv4 import SigV4AuthContext, sign_sigv4
|
|
10
|
+
from capo_codecommit._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,
|
|
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
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
body
|
|
64
|
-
|
|
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
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
body
|
|
88
|
-
|
|
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
|
|
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
|
-
#
|
|
100
|
-
|
|
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
|
-
|
|
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
|
-
|
|
239
|
-
|
|
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(
|
|
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
|
-
#
|
|
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
|
|
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
|
-
|
|
265
|
-
|
|
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
|
|
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
|
-
|
|
312
|
-
if
|
|
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=
|
|
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(
|
|
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
|
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
"""Request body abstraction for streaming operations.
|
|
2
|
+
|
|
3
|
+
Hand-written, not regenerated.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
import os
|
|
9
|
+
from collections.abc import AsyncIterator, Callable, Iterator
|
|
10
|
+
from contextlib import (
|
|
11
|
+
AbstractAsyncContextManager,
|
|
12
|
+
AbstractContextManager,
|
|
13
|
+
asynccontextmanager,
|
|
14
|
+
contextmanager,
|
|
15
|
+
)
|
|
16
|
+
from typing import TYPE_CHECKING, Generic, TypeVar, Union, cast
|
|
17
|
+
|
|
18
|
+
from ._iter import AnyIterator
|
|
19
|
+
|
|
20
|
+
if TYPE_CHECKING:
|
|
21
|
+
import anyio
|
|
22
|
+
else:
|
|
23
|
+
try:
|
|
24
|
+
import anyio
|
|
25
|
+
except ImportError:
|
|
26
|
+
anyio = None
|
|
27
|
+
|
|
28
|
+
_CHUNK_SIZE = 64 * 1024
|
|
29
|
+
|
|
30
|
+
TStream = TypeVar("TStream", Iterator[bytes], AsyncIterator[bytes])
|
|
31
|
+
|
|
32
|
+
# The opener yields the fresh stream together with its length, or ``None`` when
|
|
33
|
+
# no stream could be produced (an exhausted or non-rewindable source, or logic
|
|
34
|
+
# that decides dynamically it cannot reopen). Pairing the length with each open
|
|
35
|
+
# lets it change between rebuilds instead of being fixed for the whole body.
|
|
36
|
+
_ContextManager = Union[
|
|
37
|
+
AbstractContextManager[Union[tuple[TStream, int], None]],
|
|
38
|
+
AbstractAsyncContextManager[Union[tuple[TStream, int], None]],
|
|
39
|
+
]
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
class Body(AnyIterator[bytes], Generic[TStream]):
|
|
43
|
+
"""A replayable request body whose length travels with each open.
|
|
44
|
+
|
|
45
|
+
A plain ``Iterator[bytes]`` can be sent only once, so a failed request
|
|
46
|
+
cannot be retried. A ``Body`` instead holds an *opener* — a context manager
|
|
47
|
+
that opens a fresh stream over the same source — and rebuilds the stream
|
|
48
|
+
before every attempt, closing whatever was left of the previous one.
|
|
49
|
+
|
|
50
|
+
``TStream`` is ``Iterator[bytes]`` for bodies built with :meth:`from_path`
|
|
51
|
+
and ``AsyncIterator[bytes]`` for :meth:`async_from_path`; the former use
|
|
52
|
+
``rebuild()``/``close()``, the latter ``arebuild()``/``aclose()``.
|
|
53
|
+
``build_request`` rebuilds before every attempt.
|
|
54
|
+
|
|
55
|
+
Each open produces ``(stream, length)`` together, so the length is not bound
|
|
56
|
+
to the whole body and may differ from one rebuild to the next. A rebuild is
|
|
57
|
+
also not guaranteed to succeed: the source may be exhausted or
|
|
58
|
+
non-rewindable, so the opener can yield ``None`` and :meth:`rebuild` then
|
|
59
|
+
returns ``None`` instead of a pair. Callers check the return value::
|
|
60
|
+
|
|
61
|
+
for attempt in range(max_attempts):
|
|
62
|
+
opened = body.rebuild()
|
|
63
|
+
if opened is None:
|
|
64
|
+
raise RuntimeError("body could not be rebuilt")
|
|
65
|
+
stream, length = opened
|
|
66
|
+
send(stream, length)
|
|
67
|
+
|
|
68
|
+
``length`` also holds the current stream's length as an attribute (``None``
|
|
69
|
+
before the first rebuild). Iterating a ``Body`` reads its current stream.
|
|
70
|
+
"""
|
|
71
|
+
|
|
72
|
+
def __init__(self, opener: Callable[[], _ContextManager[TStream]]) -> None:
|
|
73
|
+
self._opener = opener
|
|
74
|
+
self._cm: _ContextManager[TStream] | None = None
|
|
75
|
+
self._stream: TStream | None = None
|
|
76
|
+
self.length: int | None = None
|
|
77
|
+
|
|
78
|
+
@classmethod
|
|
79
|
+
def from_path(
|
|
80
|
+
cls, path: str | os.PathLike[str], chunk_size: int = _CHUNK_SIZE
|
|
81
|
+
) -> Body[Iterator[bytes]]:
|
|
82
|
+
"""A body that reads ``path`` in ``chunk_size`` chunks, reopening it (and re-measuring it) on every rebuild."""
|
|
83
|
+
|
|
84
|
+
@contextmanager
|
|
85
|
+
def open_() -> Iterator[tuple[Iterator[bytes], int]]:
|
|
86
|
+
with open(path, "rb") as file:
|
|
87
|
+
length = os.fstat(file.fileno()).st_size
|
|
88
|
+
yield iter(lambda: file.read(chunk_size), b""), length
|
|
89
|
+
|
|
90
|
+
return Body(open_)
|
|
91
|
+
|
|
92
|
+
@classmethod
|
|
93
|
+
def async_from_path(
|
|
94
|
+
cls, path: str | os.PathLike[str], chunk_size: int = _CHUNK_SIZE
|
|
95
|
+
) -> Body[AsyncIterator[bytes]]:
|
|
96
|
+
"""The async counterpart of :meth:`from_path`; needs ``anyio`` installed."""
|
|
97
|
+
if anyio is None:
|
|
98
|
+
dist = (__package__ or "capo").replace("_", "-")
|
|
99
|
+
raise RuntimeError(
|
|
100
|
+
"Body.async_from_path() requires the anyio package; "
|
|
101
|
+
f"reinstall with the anyio feature enabled: {dist}[anyio]"
|
|
102
|
+
)
|
|
103
|
+
|
|
104
|
+
@asynccontextmanager
|
|
105
|
+
async def open_() -> AsyncIterator[tuple[AsyncIterator[bytes], int]]:
|
|
106
|
+
async with await anyio.open_file(path, "rb") as file:
|
|
107
|
+
length = os.fstat(file.wrapped.fileno()).st_size
|
|
108
|
+
|
|
109
|
+
async def chunks() -> AsyncIterator[bytes]:
|
|
110
|
+
while chunk := await file.read(chunk_size):
|
|
111
|
+
yield chunk
|
|
112
|
+
|
|
113
|
+
yield chunks(), length
|
|
114
|
+
|
|
115
|
+
return Body(open_)
|
|
116
|
+
|
|
117
|
+
@property
|
|
118
|
+
def stream(self) -> TStream | None:
|
|
119
|
+
"""The current open stream, or ``None`` if none is open (before the first
|
|
120
|
+
rebuild, or after a close).
|
|
121
|
+
|
|
122
|
+
``build_request`` reuses a non-``None`` stream instead of rebuilding, so
|
|
123
|
+
the retry layer stays in control of when a fresh stream is created.
|
|
124
|
+
"""
|
|
125
|
+
return self._stream
|
|
126
|
+
|
|
127
|
+
def rebuild(self: Body[Iterator[bytes]]) -> tuple[Iterator[bytes], int] | None:
|
|
128
|
+
"""Reopen the stream, closing any previous one, and return ``(stream, length)``.
|
|
129
|
+
|
|
130
|
+
``None`` if the source could not be reopened.
|
|
131
|
+
"""
|
|
132
|
+
self.close()
|
|
133
|
+
cm = self._opener()
|
|
134
|
+
if not isinstance(cm, AbstractContextManager):
|
|
135
|
+
raise TypeError(
|
|
136
|
+
"this Body has an async opener; use it with the async client (arebuild/aclose)"
|
|
137
|
+
)
|
|
138
|
+
cm = cast(AbstractContextManager["tuple[Iterator[bytes], int] | None"], cm)
|
|
139
|
+
opened = cm.__enter__()
|
|
140
|
+
if opened is None:
|
|
141
|
+
cm.__exit__(None, None, None)
|
|
142
|
+
return None
|
|
143
|
+
stream, length = opened
|
|
144
|
+
self._stream, self.length, self._cm = stream, length, cm
|
|
145
|
+
return stream, length
|
|
146
|
+
|
|
147
|
+
async def arebuild(
|
|
148
|
+
self: Body[AsyncIterator[bytes]],
|
|
149
|
+
) -> tuple[AsyncIterator[bytes], int] | None:
|
|
150
|
+
"""Async :meth:`rebuild`, returning ``(stream, length)`` or ``None``."""
|
|
151
|
+
await self.aclose()
|
|
152
|
+
cm = self._opener()
|
|
153
|
+
if not isinstance(cm, AbstractAsyncContextManager):
|
|
154
|
+
raise TypeError(
|
|
155
|
+
"this Body has a sync opener; use it with the sync client (rebuild/close)"
|
|
156
|
+
)
|
|
157
|
+
cm = cast(
|
|
158
|
+
AbstractAsyncContextManager["tuple[AsyncIterator[bytes], int] | None"], cm
|
|
159
|
+
)
|
|
160
|
+
opened = await cm.__aenter__()
|
|
161
|
+
if opened is None:
|
|
162
|
+
await cm.__aexit__(None, None, None)
|
|
163
|
+
return None
|
|
164
|
+
stream, length = opened
|
|
165
|
+
self._stream, self.length, self._cm = stream, length, cm
|
|
166
|
+
return stream, length
|
|
167
|
+
|
|
168
|
+
def close(self: Body[Iterator[bytes]]) -> None:
|
|
169
|
+
cm, self._cm, self._stream, self.length = self._cm, None, None, None
|
|
170
|
+
if cm is not None:
|
|
171
|
+
cast(AbstractContextManager[object], cm).__exit__(None, None, None)
|
|
172
|
+
|
|
173
|
+
async def aclose(self: Body[AsyncIterator[bytes]]) -> None:
|
|
174
|
+
cm, self._cm, self._stream, self.length = self._cm, None, None, None
|
|
175
|
+
if cm is not None:
|
|
176
|
+
await cast(AbstractAsyncContextManager[object], cm).__aexit__(
|
|
177
|
+
None, None, None
|
|
178
|
+
)
|
|
179
|
+
|
|
180
|
+
def __next__(self) -> bytes:
|
|
181
|
+
if self._stream is None:
|
|
182
|
+
raise RuntimeError("body has no open stream; call rebuild() first")
|
|
183
|
+
return next(cast(Iterator[bytes], self._stream))
|
|
184
|
+
|
|
185
|
+
async def __anext__(self) -> bytes:
|
|
186
|
+
if self._stream is None:
|
|
187
|
+
raise RuntimeError("body has no open stream; call rebuild() first")
|
|
188
|
+
return await cast(AsyncIterator[bytes], self._stream).__anext__()
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
@contextmanager
|
|
192
|
+
def closing_bodies(inp: object) -> Iterator[None]:
|
|
193
|
+
"""Close every :class:`Body` in a request input when the operation finishes.
|
|
194
|
+
|
|
195
|
+
The operation method wraps its whole run (request build across retries, plus
|
|
196
|
+
response handling) in this, so a ``Body``'s stream is released once — and only
|
|
197
|
+
once — the operation is done. Non-``Body`` values (bytes, plain iterators,
|
|
198
|
+
``StaticAnyIterator``) are left untouched.
|
|
199
|
+
"""
|
|
200
|
+
try:
|
|
201
|
+
yield
|
|
202
|
+
finally:
|
|
203
|
+
if isinstance(inp, dict):
|
|
204
|
+
for value in inp.values():
|
|
205
|
+
if isinstance(value, Body):
|
|
206
|
+
cast("Body[Iterator[bytes]]", value).close()
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
@asynccontextmanager
|
|
210
|
+
async def aclosing_bodies(inp: object) -> AsyncIterator[None]:
|
|
211
|
+
"""Async :func:`closing_bodies`, awaiting :meth:`Body.aclose`."""
|
|
212
|
+
try:
|
|
213
|
+
yield
|
|
214
|
+
finally:
|
|
215
|
+
if isinstance(inp, dict):
|
|
216
|
+
for value in inp.values():
|
|
217
|
+
if isinstance(value, Body):
|
|
218
|
+
await cast("Body[AsyncIterator[bytes]]", value).aclose()
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
__all__ = ["Body", "aclosing_bodies", "closing_bodies"]
|