bedrock-agentcore-starter-toolkit 0.1.7__tar.gz → 0.1.9__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.

Potentially problematic release.


This version of bedrock-agentcore-starter-toolkit might be problematic. Click here for more details.

Files changed (171) hide show
  1. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/CHANGELOG.md +25 -1
  2. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/PKG-INFO +15 -10
  3. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/README.md +13 -8
  4. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/documentation/docs/user-guide/gateway/quickstart.md +24 -25
  5. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/documentation/docs/user-guide/observability/quickstart.md +18 -18
  6. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/documentation/docs/user-guide/runtime/permissions.md +1 -1
  7. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/pyproject.toml +3 -3
  8. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/cli/cli.py +3 -1
  9. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/operations/gateway/client.py +1 -1
  10. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/operations/gateway/create_role.py +53 -12
  11. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/operations/runtime/create_role.py +1 -1
  12. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/operations/runtime/launch.py +19 -25
  13. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/services/codebuild.py +28 -21
  14. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/services/import_agent/scripts/base_bedrock_translate.py +6 -1
  15. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/services/runtime.py +1 -1
  16. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/utils/runtime/logs.py +1 -1
  17. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/utils/runtime/templates/Dockerfile.j2 +7 -4
  18. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests/operations/gateway/test_gateway_create_role.py +39 -3
  19. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests/services/test_codebuild.py +34 -25
  20. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests/utils/runtime/test_entrypoint.py +0 -3
  21. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests_integ/memory/test_create_memory.py +7 -3
  22. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/uv.lock +6 -6
  23. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/.github/CODEOWNERS +0 -0
  24. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  25. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/.github/branch-protection.json +0 -0
  26. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/.github/dependabot.yml +0 -0
  27. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/.github/pull_request_template.md +0 -0
  28. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/.github/workflows/ci.yml +0 -0
  29. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/.github/workflows/deploy-docs.yml +0 -0
  30. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/.github/workflows/integration_testing.yml +0 -0
  31. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/.github/workflows/pr-automerge.yml +0 -0
  32. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/.github/workflows/release.yml +0 -0
  33. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/.github/workflows/security-scanning.yml +0 -0
  34. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/.github/workflows/security.yml +0 -0
  35. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/.github/workflows/test-pypi-release.yml +0 -0
  36. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/.gitignore +0 -0
  37. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/.pre-commit-config.yaml +0 -0
  38. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/.python-version +0 -0
  39. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/CODE-OF-CONDUCT.md +0 -0
  40. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/CONTRIBUTING.md +0 -0
  41. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/LICENSE.txt +0 -0
  42. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/NOTICE.txt +0 -0
  43. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/SECURITY.md +0 -0
  44. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/documentation/.gitignore +0 -0
  45. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/documentation/README.md +0 -0
  46. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/documentation/docs/api-reference/cli.md +0 -0
  47. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/documentation/docs/api-reference/identity.md +0 -0
  48. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/documentation/docs/api-reference/memory.md +0 -0
  49. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/documentation/docs/api-reference/runtime.md +0 -0
  50. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/documentation/docs/api-reference/tools.md +0 -0
  51. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/documentation/docs/examples/README.md +0 -0
  52. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/documentation/docs/examples/async-processing.md +0 -0
  53. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/documentation/docs/examples/gateway-integration.md +0 -0
  54. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/documentation/docs/examples/session-management.md +0 -0
  55. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/documentation/docs/index.md +0 -0
  56. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/documentation/docs/stylesheets/extra.css +0 -0
  57. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/documentation/docs/user-guide/builtin-tools/quickstart-browser.md +0 -0
  58. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/documentation/docs/user-guide/builtin-tools/quickstart-code-interpreter.md +0 -0
  59. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/documentation/docs/user-guide/identity/quickstart.md +0 -0
  60. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/documentation/docs/user-guide/import-agent/configuration.md +0 -0
  61. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/documentation/docs/user-guide/import-agent/design.md +0 -0
  62. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/documentation/docs/user-guide/import-agent/overview.md +0 -0
  63. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/documentation/docs/user-guide/import-agent/quickstart.md +0 -0
  64. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/documentation/docs/user-guide/memory/quickstart.md +0 -0
  65. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/documentation/docs/user-guide/runtime/async.md +0 -0
  66. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/documentation/docs/user-guide/runtime/notebook.md +0 -0
  67. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/documentation/docs/user-guide/runtime/overview.md +0 -0
  68. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/documentation/docs/user-guide/runtime/quickstart.md +0 -0
  69. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/documentation/mkdocs.yaml +4 -4
  70. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/documentation/overrides/main.html +0 -0
  71. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/scripts/bump-version.py +0 -0
  72. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/scripts/prepare-release.py +0 -0
  73. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/scripts/setup-branch-protection.sh +0 -0
  74. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/scripts/validate-release.py +0 -0
  75. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/__init__.py +0 -0
  76. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/cli/__init__.py +0 -0
  77. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/cli/common.py +0 -0
  78. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/cli/gateway/__init__.py +0 -0
  79. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/cli/gateway/commands.py +0 -0
  80. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/cli/import_agent/README.md +0 -0
  81. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/cli/import_agent/__init__.py +0 -0
  82. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/cli/import_agent/agent_info.py +0 -0
  83. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/cli/import_agent/commands.py +0 -0
  84. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/cli/runtime/__init__.py +0 -0
  85. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/cli/runtime/commands.py +0 -0
  86. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/cli/runtime/configuration_manager.py +0 -0
  87. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/notebook/__init__.py +0 -0
  88. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/notebook/runtime/__init__.py +0 -0
  89. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/notebook/runtime/bedrock_agentcore.py +0 -0
  90. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/operations/__init__.py +0 -0
  91. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/operations/gateway/__init__.py +0 -0
  92. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/operations/gateway/constants.py +0 -0
  93. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/operations/gateway/create_lambda.py +0 -0
  94. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/operations/gateway/exceptions.py +0 -0
  95. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/operations/runtime/__init__.py +0 -0
  96. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/operations/runtime/configure.py +0 -0
  97. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/operations/runtime/invoke.py +0 -0
  98. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/operations/runtime/models.py +0 -0
  99. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/operations/runtime/status.py +0 -0
  100. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/services/__init__.py +0 -0
  101. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/services/ecr.py +0 -0
  102. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/services/import_agent/__init__.py +0 -0
  103. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/services/import_agent/assets/memory_manager_template.py +0 -0
  104. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/services/import_agent/assets/requirements_langchain.j2 +0 -0
  105. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/services/import_agent/assets/requirements_strands.j2 +0 -0
  106. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/services/import_agent/assets/template_fixtures_merged.json +0 -0
  107. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/services/import_agent/scripts/__init__.py +0 -0
  108. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/services/import_agent/scripts/bedrock_to_langchain.py +0 -0
  109. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/services/import_agent/scripts/bedrock_to_strands.py +0 -0
  110. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/services/import_agent/utils.py +0 -0
  111. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/utils/endpoints.py +0 -0
  112. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/utils/logging_config.py +0 -0
  113. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/utils/runtime/config.py +0 -0
  114. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/utils/runtime/container.py +0 -0
  115. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/utils/runtime/entrypoint.py +0 -0
  116. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/utils/runtime/policy_template.py +0 -0
  117. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/utils/runtime/schema.py +0 -0
  118. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/utils/runtime/templates/dockerignore.template +0 -0
  119. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/utils/runtime/templates/execution_role_policy.json.j2 +0 -0
  120. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/src/bedrock_agentcore_starter_toolkit/utils/runtime/templates/execution_role_trust_policy.json.j2 +0 -0
  121. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests/__init__.py +0 -0
  122. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests/cli/gateway/__init__.py +0 -0
  123. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests/cli/gateway/test_commands.py +0 -0
  124. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests/cli/runtime/__init__.py +0 -0
  125. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests/cli/runtime/test_commands.py +0 -0
  126. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests/cli/runtime/test_configuration_manager.py +0 -0
  127. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests/cli/test_common.py +0 -0
  128. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests/conftest.py +0 -0
  129. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests/conftest_mock.py +0 -0
  130. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests/fixtures/project_config_multiple.yaml +0 -0
  131. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests/fixtures/project_config_single.yaml +0 -0
  132. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests/notebook/runtime/test_bedrock_agentcore.py +0 -0
  133. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests/operations/gateway/test_gateway_client.py +0 -0
  134. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests/operations/gateway/test_gateway_client_init.py +0 -0
  135. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests/operations/runtime/test_configure.py +0 -0
  136. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests/operations/runtime/test_create_role.py +0 -0
  137. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests/operations/runtime/test_invoke.py +0 -0
  138. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests/operations/runtime/test_launch.py +0 -0
  139. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests/operations/runtime/test_status.py +0 -0
  140. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests/services/import_agent/data/bedrock_config.json +0 -0
  141. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests/services/import_agent/data/bedrock_config_multi_agent.json +0 -0
  142. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests/services/import_agent/data/bedrock_config_no_schema.json +0 -0
  143. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests/services/import_agent/test_import_agent.py +0 -0
  144. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests/services/test_ecr.py +0 -0
  145. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests/services/test_runtime.py +0 -0
  146. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests/services/test_runtime_conflict_error.py +0 -0
  147. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests/utils/runtime/test_config.py +0 -0
  148. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests/utils/runtime/test_container.py +0 -0
  149. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests/utils/runtime/test_policy_template.py +0 -0
  150. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests/utils/test_endpoints.py +0 -0
  151. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests/utils/test_logging_config.py +0 -0
  152. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests_integ/__init__.py +0 -0
  153. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests_integ/cli/__init__.py +0 -0
  154. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests_integ/cli/runtime/__init__.py +0 -0
  155. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests_integ/cli/runtime/base_test.py +0 -0
  156. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests_integ/cli/runtime/test_simple_agent.py +0 -0
  157. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests_integ/gateway/README.md +0 -0
  158. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests_integ/gateway/test_cognito_token.py +0 -0
  159. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests_integ/gateway/test_create_gateway_role.py +0 -0
  160. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests_integ/gateway/test_egress_auth.py +0 -0
  161. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests_integ/gateway/test_gateway_cognito.py +0 -0
  162. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests_integ/identity/access_token_3LO.py +0 -0
  163. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests_integ/notebook/test_notebook_runtime.py +0 -0
  164. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests_integ/strands_agent/__init__.py +0 -0
  165. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests_integ/strands_agent/agent_example.py +0 -0
  166. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests_integ/tools/__init__.py +0 -0
  167. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests_integ/tools/my_mcp_client.py +0 -0
  168. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests_integ/tools/my_mcp_client_remote.py +0 -0
  169. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests_integ/tools/my_mcp_server.py +0 -0
  170. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests_integ/tools/setup_cognito.sh +0 -0
  171. {bedrock_agentcore_starter_toolkit-0.1.7 → bedrock_agentcore_starter_toolkit-0.1.9}/tests_integ/utils/config.py +0 -0
@@ -1,8 +1,32 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.1.9] - 2025-09-07
4
+
5
+ ### Changes
6
+
7
+ - fix: resolve regex escape sequence warnings (#151) (70d7381)
8
+ - feat(gateway): handle existing policies gracefully in _attach_policy (#140) (f372b99)
9
+ - chore: bump version to 0.1.8 (#150) (1421e48)
10
+
11
+ ### Dependencies
12
+ - Updated to bedrock-agentcore SDK v0.1.3
13
+
14
+ ## [0.1.8] - 2025-09-02
15
+
16
+ ### Changes
17
+
18
+ - chore/cb latency optimization (#146) (3523bfa)
19
+ - chore(deps): update mkdocstrings-python requirement (#133) (8b8afb5)
20
+ - Release vv0.1.7 (b473e38)
21
+
3
22
  ## [0.1.7] - 2025-08-28
4
23
 
5
- Enhanced execution role permissions - Added relevant permissions for Runtime, Memory and Identity services to auto-created execution role (#132)
24
+ - Enhanced execution role permissions - Added relevant permissions for Runtime, Memory and Identity services to auto-created execution role (#132)
25
+ - Windows compatibility fix - Resolved file handle issue on Windows systems by properly closing NameTemporaryFile, fixing deployment failures with "process cannot access the file" errors (#106)
26
+ - Corrected managed policy name from AmazonBedrockAgentCoreFullAccess to BedrockAgentCoreFullAccess (#124)
27
+ - S3 permissions - Added missing S3 permissions documentation for bucket creation and lifecycle configuration (#124)
28
+ - Fixed IaC reference - Corrected typo in Infrastructure as Code reference (#124)
29
+ - Other documentation enhancements for clarity and completeness
6
30
 
7
31
  ## [0.1.6] - 2025-08-11
8
32
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bedrock-agentcore-starter-toolkit
3
- Version: 0.1.7
3
+ Version: 0.1.9
4
4
  Summary: A starter toolkit for using Bedrock AgentCore
5
5
  Project-URL: Homepage, https://github.com/aws/bedrock-agentcore-starter-toolkit
6
6
  Project-URL: Bug Tracker, https://github.com/aws/bedrock-agentcore-starter-toolkit/issues
@@ -22,7 +22,7 @@ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
22
22
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
23
23
  Requires-Python: >=3.10
24
24
  Requires-Dist: autopep8>=2.3.2
25
- Requires-Dist: bedrock-agentcore>=0.1.2
25
+ Requires-Dist: bedrock-agentcore>=0.1.3
26
26
  Requires-Dist: boto3>=1.39.7
27
27
  Requires-Dist: botocore>=1.39.7
28
28
  Requires-Dist: docstring-parser<1.0,>=0.15
@@ -67,7 +67,7 @@ Description-Content-Type: text/markdown
67
67
  <a href="https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/what-is-bedrock-agentcore.html">Documentation</a>
68
68
  ◆ <a href="https://github.com/awslabs/amazon-bedrock-agentcore-samples">Samples</a>
69
69
  ◆ <a href="https://discord.gg/bedrockagentcore-preview">Discord</a>
70
- ◆ <a href="https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/bedrock-agentcore-control.html">Setup Python SDK</a>
70
+ ◆ <a href="https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/bedrock-agentcore-control.html">Boto3 Python SDK</a>
71
71
  ◆ <a href="https://github.com/aws/bedrock-agentcore-sdk-python">Runtime Python SDK</a>
72
72
  ◆ <a href="https://github.com/aws/bedrock-agentcore-starter-toolkit">Starter Toolkit</a>
73
73
 
@@ -82,38 +82,43 @@ Amazon Bedrock AgentCore includes the following modular Services that you can us
82
82
  ## 🚀 Amazon Bedrock AgentCore Runtime
83
83
  AgentCore Runtime is a secure, serverless runtime purpose-built for deploying and scaling dynamic AI agents and tools using any open-source framework including LangGraph, CrewAI, and Strands Agents, any protocol, and any model. Runtime was built to work for agentic workloads with industry-leading extended runtime support, fast cold starts, true session isolation, built-in identity, and support for multi-modal payloads. Developers can focus on innovation while Amazon Bedrock AgentCore Runtime handles infrastructure and security -- accelerating time-to-market
84
84
 
85
- **[Runtime Quick Start](documentation/docs/user-guide/runtime/quickstart.md)**
85
+ **[Runtime Quick Start](https://aws.github.io/bedrock-agentcore-starter-toolkit/user-guide/runtime/quickstart.html)**
86
86
 
87
87
  ## 🧠 Amazon Bedrock AgentCore Memory
88
88
  AgentCore Memory makes it easy for developers to build context aware agents by eliminating complex memory infrastructure management while providing full control over what the AI agent remembers. Memory provides industry-leading accuracy along with support for both short-term memory for multi-turn conversations and long-term memory that can be shared across agents and sessions.
89
89
 
90
- **[Memory Quick Start](documentation/docs/user-guide/memory/quickstart.md)**
90
+ **[Memory Quick Start](https://aws.github.io/bedrock-agentcore-starter-toolkit/user-guide/memory/quickstart.html)**
91
91
 
92
92
  ## 🔗 Amazon Bedrock AgentCore Gateway
93
93
  Amazon Bedrock AgentCore Gateway acts as a managed Model Context Protocol (MCP) server that converts APIs and Lambda functions into MCP tools that agents can use. Gateway manages the complexity of OAuth ingress authorization and secure egress credential exchange, making standing up remote MCP servers easier and more secure. Gateway also offers composition and built-in semantic search over tools, enabling developers to scale their agents to use hundreds or thousands of tools.
94
94
 
95
- **[Gateway Quick Start](documentation/docs/user-guide/gateway/quickstart.md)**
95
+ **[Gateway Quick Start](https://aws.github.io/bedrock-agentcore-starter-toolkit/user-guide/gateway/quickstart.html)**
96
96
 
97
97
  ## 💻 Amazon Bedrock AgentCore Code Interpreter
98
98
  AgentCore Code Interpreter tool enables agents to securely execute code in isolated sandbox environments. It offers advanced configuration support and seamless integration with popular frameworks. Developers can build powerful agents for complex workflows and data analysis while meeting enterprise security requirements.
99
99
 
100
- **[Code Interpreter Quick Start](documentation/docs/user-guide/builtin-tools/quickstart-code-interpreter.md)**
100
+ **[Code Interpreter Quick Start](https://aws.github.io/bedrock-agentcore-starter-toolkit/user-guide/builtin-tools/quickstart-code-interpreter.html)**
101
101
 
102
102
 
103
103
  ## 🌐 Amazon Bedrock AgentCore Browser
104
104
  AgentCore Browser tool provides a fast, secure, cloud-based browser runtime to enable AI agents to interact with websites at scale. It provides enterprise-grade security, comprehensive observability features, and automatically scales— all without infrastructure management overhead.
105
105
 
106
- **[Browser Quick Start](documentation/docs/user-guide/builtin-tools/quickstart-browser.md)**
106
+ **[Browser Quick Start](https://aws.github.io/bedrock-agentcore-starter-toolkit/user-guide/builtin-tools/quickstart-browser.html)**
107
107
 
108
108
  ## 📊 Amazon Bedrock AgentCore Observability
109
109
  AgentCore Observability helps developers trace, debug, and monitor agent performance in production through unified operational dashboards. With support for OpenTelemetry compatible telemetry and detailed visualizations of each step of the agent workflow, AgentCore enables developers to easily gain visibility into agent behavior and maintain quality standards at scale.
110
110
 
111
- **[Observability Quick Start](documentation/docs/user-guide/observability/quickstart.md)**
111
+ **[Observability Quick Start](https://aws.github.io/bedrock-agentcore-starter-toolkit/user-guide/observability/quickstart.html)**
112
112
 
113
113
  ## 🔐 Amazon Bedrock AgentCore Identity
114
114
  AgentCore Identity provides a secure, scalable agent identity and access management capability accelerating AI agent development. It is compatible with existing identity providers, eliminating needs for user migration or rebuilding authentication flows. AgentCore Identity's helps to minimize consent fatigue with a secure token vault and allows you to build streamlined AI agent experiences. Just-enough access and secure permission delegation allow agents to securely access AWS resources and third-party tools and services.
115
115
 
116
- **[Identity Quick Start](documentation/docs/user-guide/identity/quickstart.md)**
116
+ **[Identity Quick Start](https://aws.github.io/bedrock-agentcore-starter-toolkit/user-guide/identity/quickstart.html)**
117
+
118
+ ## 🔐 Import Amazon Bedrock Agents to Bedrock AgentCore
119
+ AgentCore Import-Agent enables seamless migration of existing Amazon Bedrock Agents to LangChain/LangGraph or Strands frameworks while automatically integrating AgentCore primitives like Memory, Code Interpreter, and Gateway. Developers can migrate agents in minutes with full feature parity and deploy directly to AgentCore Runtime for serverless operation.
120
+
121
+ **[Import Agent Quick Start](https://aws.github.io/bedrock-agentcore-starter-toolkit/user-guide/import-agent/quickstart.html)**
117
122
 
118
123
 
119
124
  ## ⚠️ Preview Status
@@ -20,7 +20,7 @@
20
20
  <a href="https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/what-is-bedrock-agentcore.html">Documentation</a>
21
21
  ◆ <a href="https://github.com/awslabs/amazon-bedrock-agentcore-samples">Samples</a>
22
22
  ◆ <a href="https://discord.gg/bedrockagentcore-preview">Discord</a>
23
- ◆ <a href="https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/bedrock-agentcore-control.html">Setup Python SDK</a>
23
+ ◆ <a href="https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/bedrock-agentcore-control.html">Boto3 Python SDK</a>
24
24
  ◆ <a href="https://github.com/aws/bedrock-agentcore-sdk-python">Runtime Python SDK</a>
25
25
  ◆ <a href="https://github.com/aws/bedrock-agentcore-starter-toolkit">Starter Toolkit</a>
26
26
 
@@ -35,38 +35,43 @@ Amazon Bedrock AgentCore includes the following modular Services that you can us
35
35
  ## 🚀 Amazon Bedrock AgentCore Runtime
36
36
  AgentCore Runtime is a secure, serverless runtime purpose-built for deploying and scaling dynamic AI agents and tools using any open-source framework including LangGraph, CrewAI, and Strands Agents, any protocol, and any model. Runtime was built to work for agentic workloads with industry-leading extended runtime support, fast cold starts, true session isolation, built-in identity, and support for multi-modal payloads. Developers can focus on innovation while Amazon Bedrock AgentCore Runtime handles infrastructure and security -- accelerating time-to-market
37
37
 
38
- **[Runtime Quick Start](documentation/docs/user-guide/runtime/quickstart.md)**
38
+ **[Runtime Quick Start](https://aws.github.io/bedrock-agentcore-starter-toolkit/user-guide/runtime/quickstart.html)**
39
39
 
40
40
  ## 🧠 Amazon Bedrock AgentCore Memory
41
41
  AgentCore Memory makes it easy for developers to build context aware agents by eliminating complex memory infrastructure management while providing full control over what the AI agent remembers. Memory provides industry-leading accuracy along with support for both short-term memory for multi-turn conversations and long-term memory that can be shared across agents and sessions.
42
42
 
43
- **[Memory Quick Start](documentation/docs/user-guide/memory/quickstart.md)**
43
+ **[Memory Quick Start](https://aws.github.io/bedrock-agentcore-starter-toolkit/user-guide/memory/quickstart.html)**
44
44
 
45
45
  ## 🔗 Amazon Bedrock AgentCore Gateway
46
46
  Amazon Bedrock AgentCore Gateway acts as a managed Model Context Protocol (MCP) server that converts APIs and Lambda functions into MCP tools that agents can use. Gateway manages the complexity of OAuth ingress authorization and secure egress credential exchange, making standing up remote MCP servers easier and more secure. Gateway also offers composition and built-in semantic search over tools, enabling developers to scale their agents to use hundreds or thousands of tools.
47
47
 
48
- **[Gateway Quick Start](documentation/docs/user-guide/gateway/quickstart.md)**
48
+ **[Gateway Quick Start](https://aws.github.io/bedrock-agentcore-starter-toolkit/user-guide/gateway/quickstart.html)**
49
49
 
50
50
  ## 💻 Amazon Bedrock AgentCore Code Interpreter
51
51
  AgentCore Code Interpreter tool enables agents to securely execute code in isolated sandbox environments. It offers advanced configuration support and seamless integration with popular frameworks. Developers can build powerful agents for complex workflows and data analysis while meeting enterprise security requirements.
52
52
 
53
- **[Code Interpreter Quick Start](documentation/docs/user-guide/builtin-tools/quickstart-code-interpreter.md)**
53
+ **[Code Interpreter Quick Start](https://aws.github.io/bedrock-agentcore-starter-toolkit/user-guide/builtin-tools/quickstart-code-interpreter.html)**
54
54
 
55
55
 
56
56
  ## 🌐 Amazon Bedrock AgentCore Browser
57
57
  AgentCore Browser tool provides a fast, secure, cloud-based browser runtime to enable AI agents to interact with websites at scale. It provides enterprise-grade security, comprehensive observability features, and automatically scales— all without infrastructure management overhead.
58
58
 
59
- **[Browser Quick Start](documentation/docs/user-guide/builtin-tools/quickstart-browser.md)**
59
+ **[Browser Quick Start](https://aws.github.io/bedrock-agentcore-starter-toolkit/user-guide/builtin-tools/quickstart-browser.html)**
60
60
 
61
61
  ## 📊 Amazon Bedrock AgentCore Observability
62
62
  AgentCore Observability helps developers trace, debug, and monitor agent performance in production through unified operational dashboards. With support for OpenTelemetry compatible telemetry and detailed visualizations of each step of the agent workflow, AgentCore enables developers to easily gain visibility into agent behavior and maintain quality standards at scale.
63
63
 
64
- **[Observability Quick Start](documentation/docs/user-guide/observability/quickstart.md)**
64
+ **[Observability Quick Start](https://aws.github.io/bedrock-agentcore-starter-toolkit/user-guide/observability/quickstart.html)**
65
65
 
66
66
  ## 🔐 Amazon Bedrock AgentCore Identity
67
67
  AgentCore Identity provides a secure, scalable agent identity and access management capability accelerating AI agent development. It is compatible with existing identity providers, eliminating needs for user migration or rebuilding authentication flows. AgentCore Identity's helps to minimize consent fatigue with a secure token vault and allows you to build streamlined AI agent experiences. Just-enough access and secure permission delegation allow agents to securely access AWS resources and third-party tools and services.
68
68
 
69
- **[Identity Quick Start](documentation/docs/user-guide/identity/quickstart.md)**
69
+ **[Identity Quick Start](https://aws.github.io/bedrock-agentcore-starter-toolkit/user-guide/identity/quickstart.html)**
70
+
71
+ ## 🔐 Import Amazon Bedrock Agents to Bedrock AgentCore
72
+ AgentCore Import-Agent enables seamless migration of existing Amazon Bedrock Agents to LangChain/LangGraph or Strands frameworks while automatically integrating AgentCore primitives like Memory, Code Interpreter, and Gateway. Developers can migrate agents in minutes with full feature parity and deploy directly to AgentCore Runtime for serverless operation.
73
+
74
+ **[Import Agent Quick Start](https://aws.github.io/bedrock-agentcore-starter-toolkit/user-guide/import-agent/quickstart.html)**
70
75
 
71
76
 
72
77
  ## ⚠️ Preview Status
@@ -11,7 +11,7 @@ In the quick start guide you will learn how to set up a Gateway and integrate it
11
11
 
12
12
  ⚠️ Before starting, make sure you have:
13
13
 
14
- - **AWS Account** with credentials configured (`aws configure`).
14
+ - **AWS Account** with credentials configured (`aws configure`).
15
15
  - **Python 3.10+** installed.
16
16
  - **Access to** Anthropic's Sonnet 3.7 (or another model) for running the demo agent below.
17
17
 
@@ -40,7 +40,7 @@ client.logger.setLevel(logging.DEBUG)
40
40
  ```
41
41
 
42
42
  ### Creating an OAuth Authorization Server
43
- 🔒 Gateways are secured by OAuth authorization servers which ensure that only allowed users can access your Gateway. Let's create an OAuth authorization server to use with this Gateway. If you already have an OAuth authorization server, you can skip this step.
43
+ 🔒 Gateways are secured by OAuth authorization servers which ensure that only allowed users can access your Gateway. Let's create an OAuth authorization server to use with this Gateway. If you already have an OAuth authorization server, you can skip this step.
44
44
  ```python
45
45
  # create cognito authorizer
46
46
  cognito_response = client.create_oauth_authorizer_with_cognito("TestGateway")
@@ -53,7 +53,7 @@ cognito_response = client.create_oauth_authorizer_with_cognito("TestGateway")
53
53
  gateway = client.create_mcp_gateway(
54
54
  # the name of the Gateway - if you don't set one, one will be generated.
55
55
  name=None,
56
- # the role arn that the Gateway will use - if you don't set one, one will be created.
56
+ # the role arn that the Gateway will use - if you don't set one, one will be created.
57
57
  # NOTE: if you are using your own role make sure it has a trust policy that trusts bedrock-agentcore.amazonaws.com
58
58
  role_arn=None,
59
59
  # the OAuth authorization server details. If you are providing your own authorization server, then pass an input of the following form: {"customJWTAuthorizer": {"allowedClients": ["<INSERT CLIENT ID>"], "discoveryUrl": "<INSERT DISCOVERY URL">}}
@@ -63,7 +63,7 @@ gateway = client.create_mcp_gateway(
63
63
  )
64
64
  ```
65
65
 
66
- Now that we have a Gateway set up let's add a target. Targets can be Lambda functions, Open API schemas, or Smithy schemas (another type of API schema). Each Gateway can have multiple targets and each target can have many APIs.
66
+ Now that we have a Gateway set up let's add a target. Targets can be Lambda functions, Open API schemas, or Smithy schemas (another type of API schema). Each Gateway can have multiple targets and each target can have many APIs.
67
67
 
68
68
  ### Adding Lambda Targets
69
69
 
@@ -90,7 +90,7 @@ lambda_target = client.create_mcp_gateway_target(
90
90
  <summary>
91
91
  <strong> ➡️ Adding a custom Lambda</strong>
92
92
  </summary>
93
- Each Lambda target needs a schema defining the tools that the Lambda function implements. Your agent will see this schema and will send requests to your Lambda function in this format. You can decide how to implement the code for these tools in your Lambda.
93
+ Each Lambda target needs a schema defining the tools that the Lambda function implements. Your agent will see this schema and will send requests to your Lambda function in this format. You can decide how to implement the code for these tools in your Lambda.
94
94
 
95
95
  The schema has the following structure. **⚠️ Note don't forget to fill in the lambdaArn with your function ARN**
96
96
 
@@ -201,14 +201,14 @@ def lambda_handler(event, context):
201
201
  access_token = client.get_access_token_for_cognito(cognito_response["client_info"])
202
202
  ```
203
203
 
204
- 🗒️ Copy and paste the below code to set up a simple agent that we can use to test out the Gateway. Note AgentCore Gateway can integrate with any Agent that uses MCP including agents / code not running on AWS.
204
+ 🗒️ Copy and paste the below code to set up a simple agent that we can use to test out the Gateway. Note AgentCore Gateway can integrate with any Agent that uses MCP including agents / code not running on AWS.
205
205
 
206
206
  ```python
207
207
  from strands import Agent
208
208
  import logging
209
209
  from strands.models import BedrockModel
210
210
  from strands.tools.mcp.mcp_client import MCPClient
211
- from mcp.client.streamable_http import streamablehttp_client
211
+ from mcp.client.streamable_http import streamablehttp_client
212
212
  import os
213
213
 
214
214
  def create_streamable_http_transport(mcp_url: str, access_token: str):
@@ -224,7 +224,7 @@ def get_full_tools_list(client):
224
224
  if tmp_tools.pagination_token is None:
225
225
  more_tools = False
226
226
  else:
227
- more_tools = True
227
+ more_tools = True
228
228
  pagination_token = tmp_tools.pagination_token
229
229
  return tools
230
230
 
@@ -233,9 +233,9 @@ def run_agent(mcp_url: str, access_token: str, bedrock_model_id: str):
233
233
  inference_profile_id=bedrock_model_id,
234
234
  streaming=True,
235
235
  )
236
-
236
+
237
237
  mcp_client = MCPClient(lambda: create_streamable_http_transport(mcp_url, access_token))
238
-
238
+
239
239
  with mcp_client:
240
240
  tools = get_full_tools_list(mcp_client)
241
241
  print(f"Found the following tools: {[tool.tool_name for tool in tools]}")
@@ -265,7 +265,7 @@ If you're excited and want to learn more about Gateways and the other Target typ
265
265
 
266
266
  ### Adding OpenAPI Targets
267
267
 
268
- Let's add an OpenAPI target. This code uses the OpenAPI schema for a NASA API that provides Mars weather information. You can get an API key sent to your email in a minute by filling out the form here: https://api.nasa.gov/.
268
+ Let's add an OpenAPI target. This code uses the OpenAPI schema for a NASA API that provides Mars weather information. You can get an API key sent to your email in a minute by filling out the form here: https://api.nasa.gov/.
269
269
 
270
270
  **Open API Spec for NASA Mars weather API**
271
271
  <div style="max-height: 200px; overflow: auto;">
@@ -551,7 +551,7 @@ Alternatively if you have an API that uses OAuth, set the `credentials` field to
551
551
  }
552
552
  }
553
553
  ```
554
- There are other supported `oauth_2_provider` types including Microsoft, GitHub, Google, Salesforce, and Slack. For information on the structure of those provider configs see the [identity documentation](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/identity-idps.html).
554
+ There are other supported `oauth_2_provider` types including Microsoft, GitHub, Google, Salesforce, and Slack. For information on the structure of those provider configs see the [identity documentation](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/identity-idps.html).
555
555
  </details>
556
556
 
557
557
  ### Adding Smithy API Model Targets
@@ -604,10 +604,10 @@ While the Starter Toolkit makes it easy to get started, the Boto3 Python client
604
604
  ### Setup
605
605
 
606
606
  Instantiate the client
607
- ```python
607
+ ```python
608
608
  import boto3
609
609
 
610
- boto_client = boto3.client("bedrock-agentcore-control",
610
+ boto_client = boto3.client("bedrock-agentcore-control",
611
611
  region_name="us-east-1")
612
612
  ```
613
613
 
@@ -648,17 +648,17 @@ create_gw_request = {
648
648
  "clientToken": "string", # optional - used for idempotency
649
649
  "roleArn": "string", # required - execution role arn that Gateway will use when interacting with AWS resources
650
650
  "protocolType": "string", # required - must be MCP
651
- "protocolConfiguration": { # optional
651
+ "protocolConfiguration": { # optional
652
652
  "mcp": {
653
653
  "supportedVersions": ["enum_string"], # optional - e.g. 2025-06-18
654
654
  "instructions": "string", # optional - instructions for agents using this MCP server
655
655
  "searchType": "enum_string" # optional - must be SEMANTIC if specified. This enables the tool search tool
656
656
  }
657
657
  },
658
- "authorizerType": "string", # required - must be CUSTOM_JWT
658
+ "authorizerType": "string", # required - must be CUSTOM_JWT
659
659
  "authorizerConfiguration": { # required - the configuration for your authorizer
660
660
  "customJWTAuthorizer": { # required the custom JWT authorizer setup
661
- "allowedAudience": [], # optional
661
+ "allowedAudience": [], # optional
662
662
  "allowedClients": [], # optional
663
663
  "discoveryUrl": "string" # required - the URL of the authorization server
664
664
  },
@@ -677,7 +677,7 @@ example_create_gw_request = {
677
677
  "protocolType": "MCP",
678
678
  "authorizerType": "CUSTOM_JWT",
679
679
  "authorizerConfiguration": {
680
- "customJWTAuthorizer": {
680
+ "customJWTAuthorizer": {
681
681
  "discoveryUrl": "<INSERT DISCOVERY URL e.g. https://cognito-idp.{region}.amazonaws.com/{user_pool_id}/.well-known/openid-configuration>",
682
682
  "allowedClients": ["<INSERT CLIENT ID>"]
683
683
  }
@@ -701,17 +701,17 @@ update_gw_request = {
701
701
  "description": "string", # optional - description of your gateway
702
702
  "roleArn": "string", # required - execution role arn that Gateway will use when interacting with AWS resources
703
703
  "protocolType": "string", # required - must be MCP
704
- "protocolConfiguration": { # optional
704
+ "protocolConfiguration": { # optional
705
705
  "mcp": {
706
706
  "supportedVersions": ["enum_string"], # optional - e.g. 2025-06-18
707
707
  "instructions": "string", # optional - instructions for agents using this MCP server
708
708
  "searchType": "enum_string" # optional - must be SEMANTIC if specified. This enables the tool search tool
709
709
  }
710
710
  },
711
- "authorizerType": "string", # required - must be CUSTOM_JWT
711
+ "authorizerType": "string", # required - must be CUSTOM_JWT
712
712
  "authorizerConfiguration": { # required - the configuration for your authorizer
713
713
  "customJWTAuthorizer": { # required the custom JWT authorizer setup
714
- "allowedAudience": [], # optional
714
+ "allowedAudience": [], # optional
715
715
  "allowedClients": [], # optional
716
716
  "discoveryUrl": "string" # required - the URL of the authorization server
717
717
  },
@@ -730,7 +730,7 @@ example_update_gw_request = {
730
730
  "protocolType": "MCP",
731
731
  "authorizerType": "CUSTOM_JWT",
732
732
  "authorizerConfiguration": {
733
- "customJWTAuthorizer": {
733
+ "customJWTAuthorizer": {
734
734
  "discoveryUrl": "<INSERT DISCOVERY URL e.g. https://cognito-idp.{region}.amazonaws.com/{user_pool_id}/.well-known/openid-configuration>",
735
735
  "allowedClients": ["<INSERT CLIENT ID>"]
736
736
  }
@@ -774,7 +774,7 @@ create_target_request = {
774
774
  },
775
775
  "lambda": {
776
776
  "lambdaArn": "string",
777
- "toolSchema": { # union - choose one of either s3 or inlinePayload
777
+ "toolSchema": { # union - choose one of either s3 or inlinePayload
778
778
  "s3": {
779
779
  "uri": "string",
780
780
  "bucketOwnerAccountId": "string"
@@ -865,7 +865,7 @@ update_target_request = {
865
865
  },
866
866
  "lambda": {
867
867
  "lambdaArn": "string",
868
- "toolSchema": { # union - choose one of either s3 or inlinePayload
868
+ "toolSchema": { # union - choose one of either s3 or inlinePayload
869
869
  "s3": {
870
870
  "uri": "string",
871
871
  "bucketOwnerAccountId": "string"
@@ -946,4 +946,3 @@ delete_target_response = boto_client.delete_gateway_target(
946
946
  )
947
947
  ```
948
948
  </details>
949
-
@@ -30,19 +30,19 @@ AgentCore Observability offers two ways to configure monitoring to match differe
30
30
 
31
31
  ## Enabling Observability for AgentCore-Hosted Agents
32
32
 
33
- AgentCore Runtime-hosted agents are deployed and executed directly within the AgentCore environment, providing automatic instrumentation with minimal configuration. This approach offers the fastest path to deployment and is ideal for rapid development and testing.
33
+ AgentCore Runtime-hosted agents are deployed and executed directly within the AgentCore environment, providing automatic instrumentation with minimal configuration. This approach offers the fastest path to deployment and is ideal for rapid development and testing.
34
34
 
35
35
  For a complete example please refer to this [notebook](https://github.com/awslabs/amazon-bedrock-agentcore-samples/blob/main/01-tutorials/06-AgentCore-observability/01-Agentcore-runtime-hosted/runtime_with_strands_and_bedrock_models.ipynb)
36
36
 
37
37
  ### Step 1 : Create your Agent, shown below is an example with Strands Agents SDK:
38
38
 
39
- To enable OTEL exporting, please note to install [Strands Agents](https://strandsagents.com/latest/) with otel extra dependencies:
39
+ To enable OTEL exporting, please note to install [Strands Agents](https://strandsagents.com/latest/) with otel extra dependencies:
40
40
 
41
- ```bash
41
+ ```bash
42
42
  pip install 'strands-agents[otel]'
43
43
  ```
44
44
 
45
- Highlighted below are the steps to host a strands agent on AgentCore Runtime to get started:
45
+ Highlighted below are the steps to host a strands agent on AgentCore Runtime to get started:
46
46
 
47
47
  ```python
48
48
  ## Save this as strands_claude.py
@@ -55,7 +55,7 @@ from strands.models import BedrockModel
55
55
 
56
56
  app = BedrockAgentCoreApp()
57
57
 
58
- # Create a custom tool
58
+ # Create a custom tool
59
59
  @tool
60
60
  def weather():
61
61
  """ Get weather """ # Dummy implementation
@@ -88,9 +88,9 @@ if __name__ == "__main__":
88
88
 
89
89
  ### Step 2 : Deploy and invoke your Agent on AgentCore Runtime
90
90
 
91
- Now that you created an agent ready to be hosted on AgentCore runtime, you can easily deploy it using the `bedrock_agentcore_starter_toolkit` package as shown below :
91
+ Now that you created an agent ready to be hosted on AgentCore runtime, you can easily deploy it using the `bedrock_agentcore_starter_toolkit` package as shown below :
92
92
 
93
- ```python
93
+ ```python
94
94
  from bedrock_agentcore_starter_toolkit import Runtime
95
95
  from boto3.session import Session
96
96
  boto_session = Session()
@@ -99,7 +99,7 @@ region = boto_session.region_name
99
99
  agentcore_runtime = Runtime()
100
100
  agent_name = "strands_claude_getting_started"
101
101
  response = agentcore_runtime.configure(
102
- entrypoint="strands_claude.py", # file created in Step 1
102
+ entrypoint="strands_claude.py", # file created in Step 1
103
103
  auto_create_execution_role=True,
104
104
  auto_create_ecr=True,
105
105
  requirements_file="requirements.txt", # ensure aws-opentelemetry-distro exists along with your libraries required to run your agent
@@ -111,7 +111,7 @@ launch_result = agentcore_runtime.launch()
111
111
  launch_result
112
112
  ```
113
113
 
114
- In these simple steps you deployed your strands agent on runtime with the Bedrock agentcore starter toolkit that automaticcally instruments your agent invocation using Open Telemetry. Now, you can invoke your agent using the command shown below and see the Traces, sessions and metrics on GenAI Obsrvability dashboard on Amazon Cloudwatch.
114
+ In these simple steps you deployed your strands agent on runtime with the Bedrock agentcore starter toolkit that automaticcally instruments your agent invocation using Open Telemetry. Now, you can invoke your agent using the command shown below and see the Traces, sessions and metrics on GenAI Obsrvability dashboard on Amazon Cloudwatch.
115
115
 
116
116
  ```python
117
117
  invoke_response = agentcore_runtime.invoke({"prompt": "How is the weather now?"})
@@ -120,7 +120,7 @@ invoke_response
120
120
 
121
121
  ## Enabling Observability for Non-AgentCore-Hosted Agents
122
122
 
123
- For agents running outside of the AgentCore runtime, deliver the same monitoring capabilities for agents deployed on your own infrastructure, allowing consistent observability regardless of where your agents run. Additionally, you would need to follow the steps below to configure the environment variables needed to observe your agents.
123
+ For agents running outside of the AgentCore runtime, deliver the same monitoring capabilities for agents deployed on your own infrastructure, allowing consistent observability regardless of where your agents run. Additionally, you would need to follow the steps below to configure the environment variables needed to observe your agents.
124
124
 
125
125
  For a complete example please refer to this [notebook](https://github.com/awslabs/amazon-bedrock-agentcore-samples/blob/main/01-tutorials/06-AgentCore-observability/02-Agent-not-hosted-on-runtime/Strands/Strands_Observability.ipynb)
126
126
 
@@ -134,7 +134,7 @@ export AWS_ACCESS_KEY_ID=<access key id>
134
134
  export AWS_SECRET_ACCESS_KEY=<secret key>
135
135
  ```
136
136
 
137
- ### Step 2: Configure CloudWatch logging:
137
+ ### Step 2: Configure CloudWatch logging:
138
138
 
139
139
  Create a log group and log stream for your agent in Amazon CloudWatch which you can use to configure below environment variables.
140
140
 
@@ -142,18 +142,18 @@ Create a log group and log stream for your agent in Amazon CloudWatch which you
142
142
 
143
143
  ```bash
144
144
  export AGENT_OBSERVABILITY_ENABLED=true # Activates the ADOT pipeline
145
- export OTEL_PYTHON_DISTRO=aws_distro # Uses AWS Distro for OpenTelemetry
145
+ export OTEL_PYTHON_DISTRO=aws_distro # Uses AWS Distro for OpenTelemetry
146
146
  export OTEL_PYTHON_CONFIGURATOR=aws_configurator # Sets AWS configurator for ADOT SDK
147
147
  export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf # Configures export protocol
148
148
  export OTEL_EXPORTER_OTLP_LOGS_HEADERS=x-aws-log-group=<YOUR-LOG-GROUP>,x-aws-log-stream=<YOUR-LOG-STREAM>,x-aws- metric-namespace=<YOUR-NAMESPACE>
149
- # Directs logs to CloudWatch groups
149
+ # Directs logs to CloudWatch groups
150
150
  export OTEL_RESOURCE_ATTRIBUTES=service.name=<YOUR-AGENT-NAME> # Identifies your agent in observability data
151
151
  ```
152
152
 
153
153
  Replace `<YOUR-AGENT-NAME>` with a unique name to identify this agent in the GenAI Observability dashboard and logs.
154
154
 
155
155
 
156
- ### Step 4: Create an agent locally
156
+ ### Step 4: Create an agent locally
157
157
 
158
158
  ```python
159
159
  # Create agent.py - Strands agent that is a weather assistant
@@ -199,7 +199,7 @@ With aws-opetelemetry-distro in your requirements.txt, `opentelemetry-instrument
199
199
  - Send traces to CloudWatch
200
200
  - Enable you to visualize the agent's decision-making process in the GenAI Observability dashboard
201
201
 
202
- ```bash
202
+ ```bash
203
203
  opentelemetry-instrument python agent.py
204
204
  ```
205
205
 
@@ -222,14 +222,14 @@ opentelemetry-instrument python strands_travel_agent_with_session.py --session-i
222
222
 
223
223
  After implementing observability, you can view the collected data in CloudWatch:
224
224
 
225
- ## Bedrock AgentCore Overview on GenAI Observability dashboard
225
+ ## Bedrock AgentCore Overview on GenAI Observability dashboard
226
226
 
227
227
  1. Open the [GenAI Observability on CloudWatch console](https://console.aws.amazon.com/cloudwatch/home#gen-ai-observability)
228
228
  2. You are able to view the data related to model invocations and agents on Bedrock AgentCore on the dashboard.
229
- 3. In the Bedrock Agentcore tab you are able to see Agents View, Sessions View and Traces View.
229
+ 3. In the Bedrock Agentcore tab you are able to see Agents View, Sessions View and Traces View.
230
230
  4. Agents View lists all your Agents that are on and not on runtime, you can also click on the agent and view further details like runtime metrics, sessions and traces specific to an agent.
231
231
  5. In the Sessions View tab, you can navigate across all the sessions associated with agents.
232
- 6. In the Trace View tab, you can look into the traces and span information for agents. Also explore the trace trajectory and timeline by clicking on a trace.
232
+ 6. In the Trace View tab, you can look into the traces and span information for agents. Also explore the trace trajectory and timeline by clicking on a trace.
233
233
 
234
234
 
235
235
  ### View Logs in CloudWatch
@@ -243,7 +243,7 @@ The toolkit uses AWS CodeBuild for ARM64 container builds, especially useful in
243
243
  The Runtime Execution Role is an IAM role that AgentCore Runtime assumes to run an agent. Replace the following:
244
244
 
245
245
  - `region` with the AWS Region that you are using
246
- - `accountId` with your AWS account ID
246
+ - `accountId` with your AWS account ID
247
247
  - `agentName` with the name of your agent. You'll need to decide the agent name before creating the role and AgentCore Runtime.
248
248
 
249
249
  ### Permissions Policy
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "bedrock-agentcore-starter-toolkit"
7
- version = "0.1.7"
7
+ version = "0.1.9"
8
8
  description = "A starter toolkit for using Bedrock AgentCore"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -28,7 +28,7 @@ classifiers = [
28
28
  dependencies = [
29
29
  "boto3>=1.39.7",
30
30
  "botocore>=1.39.7",
31
- "bedrock-agentcore>=0.1.2",
31
+ "bedrock-agentcore>=0.1.3",
32
32
  "docstring_parser>=0.15,<1.0",
33
33
  "httpx>=0.28.1",
34
34
  "jinja2>=3.1.6",
@@ -165,5 +165,5 @@ dev = [
165
165
  "mkdocs~=1.6.1",
166
166
  "mkdocs-macros-plugin~=1.3.7",
167
167
  "mkdocs-material~=9.6.12",
168
- "mkdocstrings-python~=1.16.10",
168
+ "mkdocstrings-python>=1.16.10,<1.18.0",
169
169
  ]
@@ -16,7 +16,6 @@ setup_toolkit_logging(mode="cli")
16
16
  app.command("invoke")(invoke)
17
17
  app.command("status")(status)
18
18
  app.command("launch")(launch)
19
- app.command("import-agent")(import_agent)
20
19
  app.add_typer(configure_app)
21
20
 
22
21
  # gateway
@@ -24,6 +23,9 @@ app.command("create_mcp_gateway")(create_mcp_gateway)
24
23
  app.command("create_mcp_gateway_target")(create_mcp_gateway_target)
25
24
  app.add_typer(gateway_app, name="gateway")
26
25
 
26
+ # import-agent
27
+ app.command("import-agent")(import_agent)
28
+
27
29
 
28
30
  def main():
29
31
  """Entry point for the CLI application."""
@@ -84,7 +84,7 @@ class GatewayClient:
84
84
  "protocolType": "MCP",
85
85
  "authorizerType": "CUSTOM_JWT",
86
86
  "authorizerConfiguration": authorizer_config,
87
- "exceptionLevel": "DEBUG"
87
+ "exceptionLevel": "DEBUG",
88
88
  }
89
89
  if enable_semantic_search:
90
90
  create_request["protocolConfiguration"] = {"mcp": {"searchType": "SEMANTIC"}}
@@ -73,18 +73,59 @@ def _attach_policy(
73
73
  :param policy_name: the policy name (if not using a policy_arn).
74
74
  :return:
75
75
  """
76
- if policy_arn and policy_document:
77
- raise Exception("Cannot specify both policy arn and policy document.")
76
+ # Check for invalid combinations of parameters
77
+ if policy_arn:
78
+ if policy_document or policy_name:
79
+ raise Exception("Cannot specify both policy arn and policy document/name")
80
+ elif not (policy_document and policy_name):
81
+ raise Exception("Must specify both policy document and policy name, or just a policy arn")
82
+
78
83
  try:
79
- if policy_arn:
80
- iam_client.attach_role_policy(RoleName=role_name, PolicyArn=policy_arn)
81
- elif policy_document and policy_name:
82
- policy = iam_client.create_policy(
83
- PolicyName=policy_name,
84
- PolicyDocument=policy_document,
85
- )
86
- iam_client.attach_role_policy(RoleName=role_name, PolicyArn=policy["Policy"]["Arn"])
87
- else:
88
- raise Exception("Must specify both policy document and policy name or just a policy arn")
84
+ if policy_document and policy_name:
85
+ policy_arn = _try_create_policy(iam_client, policy_name, policy_document)
86
+ iam_client.attach_role_policy(RoleName=role_name, PolicyArn=policy_arn)
89
87
  except ClientError as e:
90
88
  raise RuntimeError(f"Failed to attach AgentCore policy: {e}") from e
89
+
90
+ def _try_create_policy(
91
+ iam_client: BaseClient,
92
+ policy_name: str,
93
+ policy_document: str
94
+ ) -> str:
95
+ """Try to create a new policy, or return the arn if the policy already exists.
96
+
97
+ :param iam_client: the IAM client to use.
98
+ :param policy_name: the name of the policy to create.
99
+ :param policy_document: the policy document to create.
100
+ :return: the arn of the policy.
101
+ """
102
+ try:
103
+ policy = iam_client.create_policy(
104
+ PolicyName=policy_name,
105
+ PolicyDocument=policy_document,
106
+ )
107
+ return policy["Policy"]["Arn"]
108
+ except ClientError as e:
109
+ if e.response["Error"]["Code"] == "EntityAlreadyExists":
110
+ return _get_existing_policy_arn(iam_client, policy_name)
111
+ else:
112
+ raise e
113
+
114
+ def _get_existing_policy_arn(
115
+ iam_client: BaseClient,
116
+ policy_name: str
117
+ ) -> str:
118
+ """Get the arn of an existing policy.
119
+
120
+ :param iam_client: the IAM client to use.
121
+ :param policy_name: the name of the policy to get.
122
+ :return: the arn of the policy.
123
+ """
124
+ paginator = iam_client.get_paginator("list_policies")
125
+ try:
126
+ for page in paginator.paginate(Scope="Local"):
127
+ for policy in page["Policies"]:
128
+ if policy["PolicyName"] == policy_name:
129
+ return policy["Arn"]
130
+ except ClientError as e:
131
+ raise RuntimeError(f"Failed to get existing policy arn: {e}") from e