capo-devops-agent 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (457) hide show
  1. capo_devops_agent/__init__.py +72 -0
  2. capo_devops_agent/_async.py +25 -0
  3. capo_devops_agent/_auth/_identity.py +16 -0
  4. capo_devops_agent/_auth/_providers.py +886 -0
  5. capo_devops_agent/_auth/_signers.py +88 -0
  6. capo_devops_agent/_auth/_sigv4.py +434 -0
  7. capo_devops_agent/_auth/_zapros_handler.py +80 -0
  8. capo_devops_agent/_iter.py +113 -0
  9. capo_devops_agent/_operations/dev_ops_agent/associate_service.py +192 -0
  10. capo_devops_agent/_operations/dev_ops_agent/create_agent_space.py +189 -0
  11. capo_devops_agent/_operations/dev_ops_agent/create_asset.py +189 -0
  12. capo_devops_agent/_operations/dev_ops_agent/create_asset_file.py +196 -0
  13. capo_devops_agent/_operations/dev_ops_agent/create_backlog_task.py +189 -0
  14. capo_devops_agent/_operations/dev_ops_agent/create_chat.py +195 -0
  15. capo_devops_agent/_operations/dev_ops_agent/create_private_connection.py +188 -0
  16. capo_devops_agent/_operations/dev_ops_agent/delete_agent_space.py +177 -0
  17. capo_devops_agent/_operations/dev_ops_agent/delete_asset.py +178 -0
  18. capo_devops_agent/_operations/dev_ops_agent/delete_asset_file.py +182 -0
  19. capo_devops_agent/_operations/dev_ops_agent/delete_private_connection.py +182 -0
  20. capo_devops_agent/_operations/dev_ops_agent/deregister_service.py +177 -0
  21. capo_devops_agent/_operations/dev_ops_agent/describe_private_connection.py +185 -0
  22. capo_devops_agent/_operations/dev_ops_agent/disable_operator_app.py +168 -0
  23. capo_devops_agent/_operations/dev_ops_agent/disassociate_service.py +181 -0
  24. capo_devops_agent/_operations/dev_ops_agent/enable_operator_app.py +198 -0
  25. capo_devops_agent/_operations/dev_ops_agent/get_account_usage.py +185 -0
  26. capo_devops_agent/_operations/dev_ops_agent/get_agent_space.py +185 -0
  27. capo_devops_agent/_operations/dev_ops_agent/get_asset.py +189 -0
  28. capo_devops_agent/_operations/dev_ops_agent/get_asset_content.py +192 -0
  29. capo_devops_agent/_operations/dev_ops_agent/get_asset_file.py +193 -0
  30. capo_devops_agent/_operations/dev_ops_agent/get_association.py +188 -0
  31. capo_devops_agent/_operations/dev_ops_agent/get_backlog_task.py +189 -0
  32. capo_devops_agent/_operations/dev_ops_agent/get_operator_app.py +188 -0
  33. capo_devops_agent/_operations/dev_ops_agent/get_recommendation.py +188 -0
  34. capo_devops_agent/_operations/dev_ops_agent/get_service.py +185 -0
  35. capo_devops_agent/_operations/dev_ops_agent/list_agent_spaces.py +187 -0
  36. capo_devops_agent/_operations/dev_ops_agent/list_asset_files.py +196 -0
  37. capo_devops_agent/_operations/dev_ops_agent/list_asset_types.py +188 -0
  38. capo_devops_agent/_operations/dev_ops_agent/list_asset_versions.py +190 -0
  39. capo_devops_agent/_operations/dev_ops_agent/list_assets.py +210 -0
  40. capo_devops_agent/_operations/dev_ops_agent/list_associations.py +191 -0
  41. capo_devops_agent/_operations/dev_ops_agent/list_backlog_tasks.py +189 -0
  42. capo_devops_agent/_operations/dev_ops_agent/list_chats.py +190 -0
  43. capo_devops_agent/_operations/dev_ops_agent/list_executions.py +190 -0
  44. capo_devops_agent/_operations/dev_ops_agent/list_goals.py +190 -0
  45. capo_devops_agent/_operations/dev_ops_agent/list_journal_records.py +189 -0
  46. capo_devops_agent/_operations/dev_ops_agent/list_pending_messages.py +188 -0
  47. capo_devops_agent/_operations/dev_ops_agent/list_private_connections.py +184 -0
  48. capo_devops_agent/_operations/dev_ops_agent/list_recommendations.py +191 -0
  49. capo_devops_agent/_operations/dev_ops_agent/list_services.py +197 -0
  50. capo_devops_agent/_operations/dev_ops_agent/list_tags_for_resource.py +186 -0
  51. capo_devops_agent/_operations/dev_ops_agent/list_webhooks.py +188 -0
  52. capo_devops_agent/_operations/dev_ops_agent/register_service.py +203 -0
  53. capo_devops_agent/_operations/dev_ops_agent/send_message.py +201 -0
  54. capo_devops_agent/_operations/dev_ops_agent/tag_resource.py +180 -0
  55. capo_devops_agent/_operations/dev_ops_agent/untag_resource.py +180 -0
  56. capo_devops_agent/_operations/dev_ops_agent/update_agent_space.py +190 -0
  57. capo_devops_agent/_operations/dev_ops_agent/update_asset.py +192 -0
  58. capo_devops_agent/_operations/dev_ops_agent/update_asset_file.py +196 -0
  59. capo_devops_agent/_operations/dev_ops_agent/update_association.py +196 -0
  60. capo_devops_agent/_operations/dev_ops_agent/update_backlog_task.py +190 -0
  61. capo_devops_agent/_operations/dev_ops_agent/update_goal.py +192 -0
  62. capo_devops_agent/_operations/dev_ops_agent/update_operator_app_idp_config.py +188 -0
  63. capo_devops_agent/_operations/dev_ops_agent/update_private_connection_certificate.py +190 -0
  64. capo_devops_agent/_operations/dev_ops_agent/update_recommendation.py +195 -0
  65. capo_devops_agent/_operations/dev_ops_agent/validate_aws_associations.py +180 -0
  66. capo_devops_agent/_pagination.py +21 -0
  67. capo_devops_agent/_protocol/__init__.py +1 -0
  68. capo_devops_agent/_protocol/errors.py +93 -0
  69. capo_devops_agent/_protocol/eventstream.py +238 -0
  70. capo_devops_agent/_protocol/serialize.py +47 -0
  71. capo_devops_agent/_protocol/xml.py +33 -0
  72. capo_devops_agent/_resources/dev_ops_agent/agent_space_resource.py +1149 -0
  73. capo_devops_agent/_resources/dev_ops_agent/private_connection_resource.py +567 -0
  74. capo_devops_agent/_resources/dev_ops_agent/service_resource.py +552 -0
  75. capo_devops_agent/_rule_engine/__init__.py +0 -0
  76. capo_devops_agent/_rule_engine/_aws_partition.py +160 -0
  77. capo_devops_agent/_rule_engine/_endpoint_rule_set.py +65 -0
  78. capo_devops_agent/_rule_engine/_endpoint_runtime.py +389 -0
  79. capo_devops_agent/_services/_aws_config.py +156 -0
  80. capo_devops_agent/_services/_pipeline.py +196 -0
  81. capo_devops_agent/_services/async_dev_ops_agent.py +2498 -0
  82. capo_devops_agent/_services/dev_ops_agent.py +2466 -0
  83. capo_devops_agent/errors/__init__.py +45 -0
  84. capo_devops_agent/errors/_base.py +94 -0
  85. capo_devops_agent/errors/access_denied_exception.py +48 -0
  86. capo_devops_agent/errors/conflict_exception.py +46 -0
  87. capo_devops_agent/errors/content_size_exceeded_exception.py +47 -0
  88. capo_devops_agent/errors/identity_center_service_exception.py +56 -0
  89. capo_devops_agent/errors/internal_server_exception.py +47 -0
  90. capo_devops_agent/errors/invalid_parameter_exception.py +48 -0
  91. capo_devops_agent/errors/resource_not_found_exception.py +48 -0
  92. capo_devops_agent/errors/service_quota_exceeded_exception.py +50 -0
  93. capo_devops_agent/errors/throttling_exception.py +46 -0
  94. capo_devops_agent/errors/validation_exception.py +71 -0
  95. capo_devops_agent/py.typed +0 -0
  96. capo_devops_agent/types/_prelude/blob.py +12 -0
  97. capo_devops_agent/types/_prelude/timestamp.py +17 -0
  98. capo_devops_agent/types/additional_service_details.py +312 -0
  99. capo_devops_agent/types/additional_service_registration_step.py +48 -0
  100. capo_devops_agent/types/agent_space.py +92 -0
  101. capo_devops_agent/types/agent_space_id.py +6 -0
  102. capo_devops_agent/types/agent_space_list.py +29 -0
  103. capo_devops_agent/types/agent_space_name.py +6 -0
  104. capo_devops_agent/types/api_key_value.py +6 -0
  105. capo_devops_agent/types/asset.py +85 -0
  106. capo_devops_agent/types/asset_content.py +65 -0
  107. capo_devops_agent/types/asset_file.py +92 -0
  108. capo_devops_agent/types/asset_file_body.py +53 -0
  109. capo_devops_agent/types/asset_file_bytes.py +16 -0
  110. capo_devops_agent/types/asset_file_content.py +51 -0
  111. capo_devops_agent/types/asset_file_path.py +6 -0
  112. capo_devops_agent/types/asset_file_summary.py +76 -0
  113. capo_devops_agent/types/asset_file_summary_list.py +31 -0
  114. capo_devops_agent/types/asset_file_text.py +6 -0
  115. capo_devops_agent/types/asset_id_list.py +14 -0
  116. capo_devops_agent/types/asset_list.py +29 -0
  117. capo_devops_agent/types/asset_type.py +6 -0
  118. capo_devops_agent/types/asset_type_list.py +31 -0
  119. capo_devops_agent/types/asset_type_summary.py +38 -0
  120. capo_devops_agent/types/asset_version_metadata.py +61 -0
  121. capo_devops_agent/types/asset_version_metadata_list.py +33 -0
  122. capo_devops_agent/types/asset_zip_bytes.py +16 -0
  123. capo_devops_agent/types/asset_zip_content.py +39 -0
  124. capo_devops_agent/types/assistant_message.py +33 -0
  125. capo_devops_agent/types/assistant_message_block.py +39 -0
  126. capo_devops_agent/types/associate_service_input.py +52 -0
  127. capo_devops_agent/types/associate_service_output.py +53 -0
  128. capo_devops_agent/types/association.py +112 -0
  129. capo_devops_agent/types/association_id.py +6 -0
  130. capo_devops_agent/types/associations_list.py +29 -0
  131. capo_devops_agent/types/auth_flow.py +19 -0
  132. capo_devops_agent/types/aws_configuration.py +56 -0
  133. capo_devops_agent/types/azure_configuration.py +26 -0
  134. capo_devops_agent/types/azure_dev_ops_configuration.py +42 -0
  135. capo_devops_agent/types/back_log_timestamp.py +21 -0
  136. capo_devops_agent/types/backlog_task_description.py +6 -0
  137. capo_devops_agent/types/backlog_task_title.py +6 -0
  138. capo_devops_agent/types/certificate_string.py +6 -0
  139. capo_devops_agent/types/chat_execution.py +68 -0
  140. capo_devops_agent/types/chat_execution_id.py +6 -0
  141. capo_devops_agent/types/chat_execution_list.py +31 -0
  142. capo_devops_agent/types/client_id.py +6 -0
  143. capo_devops_agent/types/client_secret.py +6 -0
  144. capo_devops_agent/types/create_agent_space_input.py +69 -0
  145. capo_devops_agent/types/create_agent_space_output.py +49 -0
  146. capo_devops_agent/types/create_asset_file_request.py +60 -0
  147. capo_devops_agent/types/create_asset_file_response.py +35 -0
  148. capo_devops_agent/types/create_asset_request.py +62 -0
  149. capo_devops_agent/types/create_asset_response.py +35 -0
  150. capo_devops_agent/types/create_backlog_task_request.py +94 -0
  151. capo_devops_agent/types/create_backlog_task_response.py +35 -0
  152. capo_devops_agent/types/create_chat_request.py +29 -0
  153. capo_devops_agent/types/create_chat_response.py +48 -0
  154. capo_devops_agent/types/create_private_connection_input.py +58 -0
  155. capo_devops_agent/types/create_private_connection_output.py +158 -0
  156. capo_devops_agent/types/custom_header_name.py +6 -0
  157. capo_devops_agent/types/custom_header_value.py +6 -0
  158. capo_devops_agent/types/custom_headers.py +29 -0
  159. capo_devops_agent/types/datadog_authorization_config.py +48 -0
  160. capo_devops_agent/types/datadog_service_details.py +68 -0
  161. capo_devops_agent/types/date_time.py +20 -0
  162. capo_devops_agent/types/delete_agent_space_input.py +24 -0
  163. capo_devops_agent/types/delete_agent_space_output.py +18 -0
  164. capo_devops_agent/types/delete_asset_file_request.py +30 -0
  165. capo_devops_agent/types/delete_asset_file_response.py +18 -0
  166. capo_devops_agent/types/delete_asset_request.py +27 -0
  167. capo_devops_agent/types/delete_asset_response.py +18 -0
  168. capo_devops_agent/types/delete_private_connection_input.py +24 -0
  169. capo_devops_agent/types/delete_private_connection_output.py +49 -0
  170. capo_devops_agent/types/deregister_service_input.py +24 -0
  171. capo_devops_agent/types/deregister_service_output.py +18 -0
  172. capo_devops_agent/types/describe_private_connection_input.py +24 -0
  173. capo_devops_agent/types/describe_private_connection_output.py +158 -0
  174. capo_devops_agent/types/description.py +6 -0
  175. capo_devops_agent/types/disable_operator_app_input.py +27 -0
  176. capo_devops_agent/types/disassociate_service_input.py +27 -0
  177. capo_devops_agent/types/disassociate_service_output.py +18 -0
  178. capo_devops_agent/types/document_list.py +14 -0
  179. capo_devops_agent/types/dynatrace_configuration.py +51 -0
  180. capo_devops_agent/types/dynatrace_o_auth_client_credentials_config.py +70 -0
  181. capo_devops_agent/types/dynatrace_resource_list.py +14 -0
  182. capo_devops_agent/types/dynatrace_service_authorization_config.py +52 -0
  183. capo_devops_agent/types/dynatrace_service_details.py +51 -0
  184. capo_devops_agent/types/email_address.py +6 -0
  185. capo_devops_agent/types/enable_operator_app_input.py +86 -0
  186. capo_devops_agent/types/enable_operator_app_output.py +88 -0
  187. capo_devops_agent/types/event_channel_configuration.py +18 -0
  188. capo_devops_agent/types/event_channel_details.py +36 -0
  189. capo_devops_agent/types/event_channel_type.py +15 -0
  190. capo_devops_agent/types/exchange_parameter_value.py +6 -0
  191. capo_devops_agent/types/exchange_parameters.py +27 -0
  192. capo_devops_agent/types/execution.py +111 -0
  193. capo_devops_agent/types/execution_list.py +29 -0
  194. capo_devops_agent/types/execution_status.py +21 -0
  195. capo_devops_agent/types/failure_message.py +6 -0
  196. capo_devops_agent/types/generic_webhook.py +62 -0
  197. capo_devops_agent/types/get_account_usage_input.py +18 -0
  198. capo_devops_agent/types/get_account_usage_output.py +143 -0
  199. capo_devops_agent/types/get_agent_space_input.py +24 -0
  200. capo_devops_agent/types/get_agent_space_output.py +49 -0
  201. capo_devops_agent/types/get_asset_content_request.py +29 -0
  202. capo_devops_agent/types/get_asset_content_response.py +46 -0
  203. capo_devops_agent/types/get_asset_file_request.py +32 -0
  204. capo_devops_agent/types/get_asset_file_response.py +35 -0
  205. capo_devops_agent/types/get_asset_request.py +29 -0
  206. capo_devops_agent/types/get_asset_response.py +35 -0
  207. capo_devops_agent/types/get_association_input.py +27 -0
  208. capo_devops_agent/types/get_association_output.py +38 -0
  209. capo_devops_agent/types/get_backlog_task_request.py +27 -0
  210. capo_devops_agent/types/get_backlog_task_response.py +35 -0
  211. capo_devops_agent/types/get_operator_app_input.py +24 -0
  212. capo_devops_agent/types/get_operator_app_output.py +78 -0
  213. capo_devops_agent/types/get_recommendation_request.py +29 -0
  214. capo_devops_agent/types/get_recommendation_response.py +39 -0
  215. capo_devops_agent/types/get_service_input.py +24 -0
  216. capo_devops_agent/types/get_service_output.py +49 -0
  217. capo_devops_agent/types/git_hub_configuration.py +67 -0
  218. capo_devops_agent/types/git_lab_configuration.py +39 -0
  219. capo_devops_agent/types/git_lab_details.py +60 -0
  220. capo_devops_agent/types/git_lab_token_type.py +18 -0
  221. capo_devops_agent/types/github_repo_owner_type.py +18 -0
  222. capo_devops_agent/types/goal.py +181 -0
  223. capo_devops_agent/types/goal_content.py +33 -0
  224. capo_devops_agent/types/goal_list.py +29 -0
  225. capo_devops_agent/types/goal_schedule.py +45 -0
  226. capo_devops_agent/types/goal_schedule_input.py +39 -0
  227. capo_devops_agent/types/goal_status.py +19 -0
  228. capo_devops_agent/types/goal_type.py +18 -0
  229. capo_devops_agent/types/grafana_service_details.py +68 -0
  230. capo_devops_agent/types/guid.py +6 -0
  231. capo_devops_agent/types/iam_auth_configuration.py +62 -0
  232. capo_devops_agent/types/idc_auth_configuration.py +75 -0
  233. capo_devops_agent/types/idp_auth_configuration.py +83 -0
  234. capo_devops_agent/types/idp_client_id.py +6 -0
  235. capo_devops_agent/types/idp_client_secret.py +6 -0
  236. capo_devops_agent/types/ip_address_or_dns_name.py +6 -0
  237. capo_devops_agent/types/ip_address_type.py +19 -0
  238. capo_devops_agent/types/journal_record.py +89 -0
  239. capo_devops_agent/types/journal_record_list.py +31 -0
  240. capo_devops_agent/types/journal_timestamp.py +21 -0
  241. capo_devops_agent/types/kms_key_arn.py +6 -0
  242. capo_devops_agent/types/list_agent_spaces_input.py +26 -0
  243. capo_devops_agent/types/list_agent_spaces_output.py +46 -0
  244. capo_devops_agent/types/list_asset_files_request.py +34 -0
  245. capo_devops_agent/types/list_asset_files_response.py +46 -0
  246. capo_devops_agent/types/list_asset_types_request.py +26 -0
  247. capo_devops_agent/types/list_asset_types_response.py +46 -0
  248. capo_devops_agent/types/list_asset_versions_request.py +32 -0
  249. capo_devops_agent/types/list_asset_versions_response.py +50 -0
  250. capo_devops_agent/types/list_assets_request.py +38 -0
  251. capo_devops_agent/types/list_assets_response.py +44 -0
  252. capo_devops_agent/types/list_associations_input.py +31 -0
  253. capo_devops_agent/types/list_associations_output.py +48 -0
  254. capo_devops_agent/types/list_backlog_tasks_request.py +84 -0
  255. capo_devops_agent/types/list_backlog_tasks_response.py +41 -0
  256. capo_devops_agent/types/list_chats_request.py +30 -0
  257. capo_devops_agent/types/list_chats_response.py +47 -0
  258. capo_devops_agent/types/list_executions_request.py +47 -0
  259. capo_devops_agent/types/list_executions_response.py +45 -0
  260. capo_devops_agent/types/list_goals_request.py +68 -0
  261. capo_devops_agent/types/list_goals_response.py +41 -0
  262. capo_devops_agent/types/list_journal_records_request.py +71 -0
  263. capo_devops_agent/types/list_journal_records_response.py +45 -0
  264. capo_devops_agent/types/list_of_security_group_ids.py +19 -0
  265. capo_devops_agent/types/list_of_subnet_ids.py +17 -0
  266. capo_devops_agent/types/list_pending_messages_request.py +33 -0
  267. capo_devops_agent/types/list_pending_messages_response.py +72 -0
  268. capo_devops_agent/types/list_private_connections_input.py +18 -0
  269. capo_devops_agent/types/list_private_connections_output.py +45 -0
  270. capo_devops_agent/types/list_recommendations_request.py +89 -0
  271. capo_devops_agent/types/list_recommendations_response.py +49 -0
  272. capo_devops_agent/types/list_services_input.py +29 -0
  273. capo_devops_agent/types/list_services_output.py +47 -0
  274. capo_devops_agent/types/list_tags_for_resource_request.py +19 -0
  275. capo_devops_agent/types/list_tags_for_resource_response.py +35 -0
  276. capo_devops_agent/types/list_webhooks_input.py +27 -0
  277. capo_devops_agent/types/list_webhooks_output.py +39 -0
  278. capo_devops_agent/types/locale.py +6 -0
  279. capo_devops_agent/types/max_ipv4_addresses_per_eni.py +6 -0
  280. capo_devops_agent/types/mcp_server_api_key_config.py +45 -0
  281. capo_devops_agent/types/mcp_server_authorization_config.py +138 -0
  282. capo_devops_agent/types/mcp_server_authorization_discovery_config.py +28 -0
  283. capo_devops_agent/types/mcp_server_authorization_method.py +20 -0
  284. capo_devops_agent/types/mcp_server_bearer_token_config.py +45 -0
  285. capo_devops_agent/types/mcp_server_configuration.py +37 -0
  286. capo_devops_agent/types/mcp_server_datadog_configuration.py +18 -0
  287. capo_devops_agent/types/mcp_server_details.py +66 -0
  288. capo_devops_agent/types/mcp_server_endpoint.py +6 -0
  289. capo_devops_agent/types/mcp_server_grafana_configuration.py +51 -0
  290. capo_devops_agent/types/mcp_server_name.py +6 -0
  291. capo_devops_agent/types/mcp_server_new_relic_configuration.py +33 -0
  292. capo_devops_agent/types/mcp_server_o_auth3_lo_config.py +106 -0
  293. capo_devops_agent/types/mcp_server_o_auth_client_credentials_config.py +90 -0
  294. capo_devops_agent/types/mcp_server_sig_v4_authorization_config.py +67 -0
  295. capo_devops_agent/types/mcp_server_sig_v4_configuration.py +37 -0
  296. capo_devops_agent/types/mcp_server_sig_v4_service_details.py +68 -0
  297. capo_devops_agent/types/mcp_server_splunk_configuration.py +18 -0
  298. capo_devops_agent/types/mcp_tools_list.py +14 -0
  299. capo_devops_agent/types/message.py +65 -0
  300. capo_devops_agent/types/message_content.py +6 -0
  301. capo_devops_agent/types/monitor_account_type.py +15 -0
  302. capo_devops_agent/types/new_relic_alert_policy_ids.py +14 -0
  303. capo_devops_agent/types/new_relic_api_key_config.py +117 -0
  304. capo_devops_agent/types/new_relic_application_ids.py +14 -0
  305. capo_devops_agent/types/new_relic_entity_guids.py +14 -0
  306. capo_devops_agent/types/new_relic_region.py +18 -0
  307. capo_devops_agent/types/new_relic_service_authorization_config.py +50 -0
  308. capo_devops_agent/types/new_relic_service_details.py +45 -0
  309. capo_devops_agent/types/next_token.py +6 -0
  310. capo_devops_agent/types/o_auth_additional_step_details.py +28 -0
  311. capo_devops_agent/types/o_auth_scope.py +6 -0
  312. capo_devops_agent/types/operator_app_url.py +6 -0
  313. capo_devops_agent/types/order_type.py +18 -0
  314. capo_devops_agent/types/pager_duty_authorization_config.py +48 -0
  315. capo_devops_agent/types/pager_duty_configuration.py +49 -0
  316. capo_devops_agent/types/pager_duty_details.py +59 -0
  317. capo_devops_agent/types/pager_duty_o_auth_client_credentials_config.py +70 -0
  318. capo_devops_agent/types/pager_duty_scopes.py +14 -0
  319. capo_devops_agent/types/pager_duty_scopes_list.py +14 -0
  320. capo_devops_agent/types/pager_duty_services_list.py +14 -0
  321. capo_devops_agent/types/pending_message.py +44 -0
  322. capo_devops_agent/types/pending_messages.py +31 -0
  323. capo_devops_agent/types/port_range.py +6 -0
  324. capo_devops_agent/types/port_ranges.py +17 -0
  325. capo_devops_agent/types/post_register_service_supported_service.py +28 -0
  326. capo_devops_agent/types/priority.py +21 -0
  327. capo_devops_agent/types/priority_list.py +29 -0
  328. capo_devops_agent/types/private_connection_mode.py +67 -0
  329. capo_devops_agent/types/private_connection_name.py +6 -0
  330. capo_devops_agent/types/private_connection_status.py +21 -0
  331. capo_devops_agent/types/private_connection_summary.py +147 -0
  332. capo_devops_agent/types/private_connection_summary_list.py +35 -0
  333. capo_devops_agent/types/private_connection_type.py +18 -0
  334. capo_devops_agent/types/recommendation.py +181 -0
  335. capo_devops_agent/types/recommendation_content.py +32 -0
  336. capo_devops_agent/types/recommendation_list.py +31 -0
  337. capo_devops_agent/types/recommendation_priority.py +19 -0
  338. capo_devops_agent/types/recommendation_status.py +22 -0
  339. capo_devops_agent/types/reference_input.py +58 -0
  340. capo_devops_agent/types/reference_output.py +53 -0
  341. capo_devops_agent/types/register_service_input.py +101 -0
  342. capo_devops_agent/types/register_service_output.py +67 -0
  343. capo_devops_agent/types/registered_azure_dev_ops_service_details.py +28 -0
  344. capo_devops_agent/types/registered_azure_identity_details.py +70 -0
  345. capo_devops_agent/types/registered_git_lab_service_details.py +52 -0
  346. capo_devops_agent/types/registered_github_service_details.py +54 -0
  347. capo_devops_agent/types/registered_grafana_server_details.py +53 -0
  348. capo_devops_agent/types/registered_mcp_server_details.py +72 -0
  349. capo_devops_agent/types/registered_mcp_server_sig_v4_details.py +89 -0
  350. capo_devops_agent/types/registered_new_relic_details.py +53 -0
  351. capo_devops_agent/types/registered_pager_duty_details.py +39 -0
  352. capo_devops_agent/types/registered_service.py +112 -0
  353. capo_devops_agent/types/registered_service_now_details.py +30 -0
  354. capo_devops_agent/types/registered_services_list.py +31 -0
  355. capo_devops_agent/types/registered_slack_service_details.py +33 -0
  356. capo_devops_agent/types/resource_config_dns_resolution.py +18 -0
  357. capo_devops_agent/types/resource_configuration_arn.py +6 -0
  358. capo_devops_agent/types/resource_gateway_arn.py +6 -0
  359. capo_devops_agent/types/resource_id.py +6 -0
  360. capo_devops_agent/types/role_arn.py +6 -0
  361. capo_devops_agent/types/scheduler_state.py +18 -0
  362. capo_devops_agent/types/scopes.py +17 -0
  363. capo_devops_agent/types/security_group_id.py +6 -0
  364. capo_devops_agent/types/self_managed_input.py +44 -0
  365. capo_devops_agent/types/send_message_content_block_delta.py +69 -0
  366. capo_devops_agent/types/send_message_content_block_delta_event.py +69 -0
  367. capo_devops_agent/types/send_message_content_block_start_event.py +62 -0
  368. capo_devops_agent/types/send_message_content_block_stop_event.py +62 -0
  369. capo_devops_agent/types/send_message_context.py +35 -0
  370. capo_devops_agent/types/send_message_events.py +218 -0
  371. capo_devops_agent/types/send_message_heartbeat_event.py +33 -0
  372. capo_devops_agent/types/send_message_json_delta.py +23 -0
  373. capo_devops_agent/types/send_message_request.py +81 -0
  374. capo_devops_agent/types/send_message_response.py +13 -0
  375. capo_devops_agent/types/send_message_response_completed_event.py +65 -0
  376. capo_devops_agent/types/send_message_response_created_event.py +44 -0
  377. capo_devops_agent/types/send_message_response_failed_event.py +56 -0
  378. capo_devops_agent/types/send_message_response_in_progress_event.py +44 -0
  379. capo_devops_agent/types/send_message_summary_event.py +44 -0
  380. capo_devops_agent/types/send_message_text_delta.py +23 -0
  381. capo_devops_agent/types/send_message_usage_info.py +35 -0
  382. capo_devops_agent/types/service.py +32 -0
  383. capo_devops_agent/types/service_configuration.py +404 -0
  384. capo_devops_agent/types/service_details.py +297 -0
  385. capo_devops_agent/types/service_id.py +6 -0
  386. capo_devops_agent/types/service_managed_input.py +149 -0
  387. capo_devops_agent/types/service_name.py +6 -0
  388. capo_devops_agent/types/service_now_authentication_scope_list.py +14 -0
  389. capo_devops_agent/types/service_now_configuration.py +48 -0
  390. capo_devops_agent/types/service_now_instance_url.py +6 -0
  391. capo_devops_agent/types/service_now_o_auth_client_credentials_config.py +70 -0
  392. capo_devops_agent/types/service_now_service_authorization_config.py +52 -0
  393. capo_devops_agent/types/service_now_service_details.py +54 -0
  394. capo_devops_agent/types/sig_v4_region.py +6 -0
  395. capo_devops_agent/types/slack_channel.py +32 -0
  396. capo_devops_agent/types/slack_configuration.py +59 -0
  397. capo_devops_agent/types/slack_transmission_target.py +55 -0
  398. capo_devops_agent/types/source_account_type.py +15 -0
  399. capo_devops_agent/types/source_aws_configuration.py +62 -0
  400. capo_devops_agent/types/subnet_id.py +6 -0
  401. capo_devops_agent/types/tag_key.py +6 -0
  402. capo_devops_agent/types/tag_key_list.py +17 -0
  403. capo_devops_agent/types/tag_resource_request.py +37 -0
  404. capo_devops_agent/types/tag_resource_response.py +18 -0
  405. capo_devops_agent/types/tag_value.py +6 -0
  406. capo_devops_agent/types/tags.py +29 -0
  407. capo_devops_agent/types/task.py +184 -0
  408. capo_devops_agent/types/task_filter.py +112 -0
  409. capo_devops_agent/types/task_list.py +29 -0
  410. capo_devops_agent/types/task_sort_field.py +18 -0
  411. capo_devops_agent/types/task_sort_order.py +18 -0
  412. capo_devops_agent/types/task_status.py +26 -0
  413. capo_devops_agent/types/task_status_list.py +29 -0
  414. capo_devops_agent/types/task_type.py +18 -0
  415. capo_devops_agent/types/task_type_list.py +29 -0
  416. capo_devops_agent/types/token_value.py +6 -0
  417. capo_devops_agent/types/untag_resource_request.py +26 -0
  418. capo_devops_agent/types/untag_resource_response.py +18 -0
  419. capo_devops_agent/types/update_agent_space_input.py +45 -0
  420. capo_devops_agent/types/update_agent_space_output.py +38 -0
  421. capo_devops_agent/types/update_asset_file_request.py +57 -0
  422. capo_devops_agent/types/update_asset_file_response.py +35 -0
  423. capo_devops_agent/types/update_asset_request.py +54 -0
  424. capo_devops_agent/types/update_asset_response.py +35 -0
  425. capo_devops_agent/types/update_association_input.py +47 -0
  426. capo_devops_agent/types/update_association_output.py +53 -0
  427. capo_devops_agent/types/update_backlog_task_request.py +48 -0
  428. capo_devops_agent/types/update_backlog_task_response.py +35 -0
  429. capo_devops_agent/types/update_goal_request.py +53 -0
  430. capo_devops_agent/types/update_goal_response.py +35 -0
  431. capo_devops_agent/types/update_operator_app_idp_config_input.py +33 -0
  432. capo_devops_agent/types/update_operator_app_idp_config_output.py +48 -0
  433. capo_devops_agent/types/update_private_connection_certificate_input.py +36 -0
  434. capo_devops_agent/types/update_private_connection_certificate_output.py +153 -0
  435. capo_devops_agent/types/update_recommendation_request.py +56 -0
  436. capo_devops_agent/types/update_recommendation_response.py +41 -0
  437. capo_devops_agent/types/usage_metric.py +41 -0
  438. capo_devops_agent/types/user_message.py +31 -0
  439. capo_devops_agent/types/user_message_block.py +37 -0
  440. capo_devops_agent/types/user_reference.py +46 -0
  441. capo_devops_agent/types/user_type.py +19 -0
  442. capo_devops_agent/types/validate_aws_associations_input.py +24 -0
  443. capo_devops_agent/types/validate_aws_associations_output.py +18 -0
  444. capo_devops_agent/types/validation_exception_field.py +33 -0
  445. capo_devops_agent/types/validation_exception_field_list.py +35 -0
  446. capo_devops_agent/types/validation_status.py +19 -0
  447. capo_devops_agent/types/vpc_id.py +6 -0
  448. capo_devops_agent/types/web_identity_token_audience_list.py +14 -0
  449. capo_devops_agent/types/webhook.py +52 -0
  450. capo_devops_agent/types/webhook_secret.py +6 -0
  451. capo_devops_agent/types/webhook_type.py +20 -0
  452. capo_devops_agent/types/webhooks_list.py +29 -0
  453. capo_devops_agent-0.1.0.dist-info/METADATA +101 -0
  454. capo_devops_agent-0.1.0.dist-info/RECORD +457 -0
  455. capo_devops_agent-0.1.0.dist-info/WHEEL +5 -0
  456. capo_devops_agent-0.1.0.dist-info/licenses/LICENSE +21 -0
  457. capo_devops_agent-0.1.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,2466 @@
1
+ """Generated from Smithy shape ``com.amazonaws.devopsagent#DevOpsAgent``."""
2
+
3
+ import datetime
4
+ import uuid
5
+ import warnings
6
+ from collections.abc import Generator, Iterator
7
+ from contextlib import contextmanager
8
+ from typing import TYPE_CHECKING, Any, Iterable, Optional
9
+
10
+ from typing_extensions import Self, TypedDict
11
+ from zapros import BaseHandler, Client
12
+
13
+ import capo_devops_agent._auth._signers
14
+ import capo_devops_agent._auth._sigv4
15
+ from capo_devops_agent._auth._identity import Credentials
16
+ from capo_devops_agent._auth._providers import (
17
+ CredentialsProvider,
18
+ IdentityProvider,
19
+ StaticAwsCredentialsProvider,
20
+ default_aws_credentials_chain,
21
+ )
22
+ from capo_devops_agent._auth._zapros_handler import AuthMiddleware
23
+ from capo_devops_agent._pagination import resolve_path as _resolve_path
24
+ from capo_devops_agent._resources.dev_ops_agent.agent_space_resource import (
25
+ AgentSpaceResource,
26
+ )
27
+ from capo_devops_agent._resources.dev_ops_agent.private_connection_resource import (
28
+ PrivateConnectionResource,
29
+ )
30
+ from capo_devops_agent._resources.dev_ops_agent.service_resource import ServiceResource
31
+ from capo_devops_agent._services._aws_config import aws_config
32
+ from capo_devops_agent._services._pipeline import (
33
+ Interceptor,
34
+ OperationOptions,
35
+ OperationRequest,
36
+ OperationResponse,
37
+ execute_pipeline,
38
+ retry,
39
+ )
40
+
41
+ if TYPE_CHECKING:
42
+ import capo_devops_agent.types.agent_space_id
43
+ import capo_devops_agent.types.asset
44
+ import capo_devops_agent.types.asset_content
45
+ import capo_devops_agent.types.asset_file_body
46
+ import capo_devops_agent.types.asset_file_path
47
+ import capo_devops_agent.types.asset_file_summary
48
+ import capo_devops_agent.types.asset_id_list
49
+ import capo_devops_agent.types.asset_type
50
+ import capo_devops_agent.types.asset_type_summary
51
+ import capo_devops_agent.types.asset_version_metadata
52
+ import capo_devops_agent.types.backlog_task_description
53
+ import capo_devops_agent.types.backlog_task_title
54
+ import capo_devops_agent.types.chat_execution_id
55
+ import capo_devops_agent.types.create_asset_file_request
56
+ import capo_devops_agent.types.create_asset_file_response
57
+ import capo_devops_agent.types.create_asset_request
58
+ import capo_devops_agent.types.create_asset_response
59
+ import capo_devops_agent.types.create_backlog_task_request
60
+ import capo_devops_agent.types.create_backlog_task_response
61
+ import capo_devops_agent.types.create_chat_request
62
+ import capo_devops_agent.types.create_chat_response
63
+ import capo_devops_agent.types.delete_asset_file_request
64
+ import capo_devops_agent.types.delete_asset_file_response
65
+ import capo_devops_agent.types.delete_asset_request
66
+ import capo_devops_agent.types.delete_asset_response
67
+ import capo_devops_agent.types.execution
68
+ import capo_devops_agent.types.get_account_usage_input
69
+ import capo_devops_agent.types.get_account_usage_output
70
+ import capo_devops_agent.types.get_asset_content_request
71
+ import capo_devops_agent.types.get_asset_content_response
72
+ import capo_devops_agent.types.get_asset_file_request
73
+ import capo_devops_agent.types.get_asset_file_response
74
+ import capo_devops_agent.types.get_asset_request
75
+ import capo_devops_agent.types.get_asset_response
76
+ import capo_devops_agent.types.get_backlog_task_request
77
+ import capo_devops_agent.types.get_backlog_task_response
78
+ import capo_devops_agent.types.get_recommendation_request
79
+ import capo_devops_agent.types.get_recommendation_response
80
+ import capo_devops_agent.types.goal
81
+ import capo_devops_agent.types.goal_schedule_input
82
+ import capo_devops_agent.types.goal_status
83
+ import capo_devops_agent.types.goal_type
84
+ import capo_devops_agent.types.journal_record
85
+ import capo_devops_agent.types.list_asset_files_request
86
+ import capo_devops_agent.types.list_asset_files_response
87
+ import capo_devops_agent.types.list_asset_types_request
88
+ import capo_devops_agent.types.list_asset_types_response
89
+ import capo_devops_agent.types.list_asset_versions_request
90
+ import capo_devops_agent.types.list_asset_versions_response
91
+ import capo_devops_agent.types.list_assets_request
92
+ import capo_devops_agent.types.list_assets_response
93
+ import capo_devops_agent.types.list_backlog_tasks_request
94
+ import capo_devops_agent.types.list_backlog_tasks_response
95
+ import capo_devops_agent.types.list_chats_request
96
+ import capo_devops_agent.types.list_chats_response
97
+ import capo_devops_agent.types.list_executions_request
98
+ import capo_devops_agent.types.list_executions_response
99
+ import capo_devops_agent.types.list_goals_request
100
+ import capo_devops_agent.types.list_goals_response
101
+ import capo_devops_agent.types.list_journal_records_request
102
+ import capo_devops_agent.types.list_journal_records_response
103
+ import capo_devops_agent.types.list_pending_messages_request
104
+ import capo_devops_agent.types.list_pending_messages_response
105
+ import capo_devops_agent.types.list_recommendations_request
106
+ import capo_devops_agent.types.list_recommendations_response
107
+ import capo_devops_agent.types.list_tags_for_resource_request
108
+ import capo_devops_agent.types.list_tags_for_resource_response
109
+ import capo_devops_agent.types.message_content
110
+ import capo_devops_agent.types.next_token
111
+ import capo_devops_agent.types.order_type
112
+ import capo_devops_agent.types.priority
113
+ import capo_devops_agent.types.recommendation_priority
114
+ import capo_devops_agent.types.recommendation_status
115
+ import capo_devops_agent.types.reference_input
116
+ import capo_devops_agent.types.resource_id
117
+ import capo_devops_agent.types.send_message_context
118
+ import capo_devops_agent.types.send_message_request
119
+ import capo_devops_agent.types.send_message_response
120
+ import capo_devops_agent.types.tag_key_list
121
+ import capo_devops_agent.types.tag_resource_request
122
+ import capo_devops_agent.types.tag_resource_response
123
+ import capo_devops_agent.types.tags
124
+ import capo_devops_agent.types.task
125
+ import capo_devops_agent.types.task_filter
126
+ import capo_devops_agent.types.task_sort_field
127
+ import capo_devops_agent.types.task_sort_order
128
+ import capo_devops_agent.types.task_status
129
+ import capo_devops_agent.types.task_type
130
+ import capo_devops_agent.types.untag_resource_request
131
+ import capo_devops_agent.types.untag_resource_response
132
+ import capo_devops_agent.types.update_asset_file_request
133
+ import capo_devops_agent.types.update_asset_file_response
134
+ import capo_devops_agent.types.update_asset_request
135
+ import capo_devops_agent.types.update_asset_response
136
+ import capo_devops_agent.types.update_backlog_task_request
137
+ import capo_devops_agent.types.update_backlog_task_response
138
+ import capo_devops_agent.types.update_goal_request
139
+ import capo_devops_agent.types.update_goal_response
140
+ import capo_devops_agent.types.update_recommendation_request
141
+ import capo_devops_agent.types.update_recommendation_response
142
+ import capo_devops_agent.types.user_type
143
+
144
+
145
+ class DevOpsAgentClientConfig(TypedDict, total=False, closed=True):
146
+ operation_interceptors: Iterable[Interceptor[Any, Any]]
147
+ retry_max_attempts: int | None
148
+ use_fips: bool | None
149
+ endpoint: str | None
150
+ region: str | None
151
+ credentials_provider: IdentityProvider[Credentials] | None
152
+
153
+
154
+ class DevOpsAgentClient:
155
+ """A client for the ``DevOpsAgent`` service.
156
+
157
+ Args:
158
+ http_handler: HTTP handler for sending requests. If not provided, creates a default handler.
159
+ operation_interceptors: Interceptors that wrap every operation call. If not provided, defaults to an empty list.
160
+ retry_max_attempts: Maximum number of times to retry a failed operation. Defaults to 3.
161
+ use_fips: The value of the ``AWS::UseFIPS`` endpoint parameter.
162
+ endpoint: The value of the ``SDK::Endpoint`` endpoint parameter.
163
+ region: The value of the ``AWS::Region`` endpoint parameter.
164
+ credentials: AWS credentials for request signing.
165
+ credentials_provider: Provider that resolves AWS credentials. Takes precedence over ``credentials``.
166
+ """
167
+
168
+ def __init__(
169
+ self,
170
+ http_handler: BaseHandler | None = None,
171
+ operation_interceptors: Iterable[Interceptor[Any, Any]] | None = None,
172
+ retry_max_attempts: int | None = None,
173
+ use_fips: bool | None = None,
174
+ endpoint: str | None = None,
175
+ region: str | None = None,
176
+ credentials: Credentials | None = None,
177
+ credentials_provider: CredentialsProvider | None = None,
178
+ ):
179
+ self._client = Client(http_handler).wrap_with_middleware(
180
+ lambda next: AuthMiddleware(next)
181
+ )
182
+ if credentials is not None and credentials_provider is not None:
183
+ warnings.warn(
184
+ "Both credentials and credentials_provider given; provider takes precedence"
185
+ )
186
+ resolved_credentials_provider: IdentityProvider[Credentials] | None = (
187
+ credentials_provider
188
+ )
189
+ if resolved_credentials_provider is None and credentials is not None:
190
+ resolved_credentials_provider = StaticAwsCredentialsProvider(credentials)
191
+ if resolved_credentials_provider is None and credentials is None:
192
+ resolved_credentials_provider = default_aws_credentials_chain(
193
+ Client(http_handler)
194
+ )
195
+ self._config = DevOpsAgentClientConfig(
196
+ {
197
+ "operation_interceptors": operation_interceptors or [],
198
+ "retry_max_attempts": retry_max_attempts,
199
+ "use_fips": use_fips,
200
+ "endpoint": endpoint,
201
+ "region": region,
202
+ "credentials_provider": resolved_credentials_provider,
203
+ }
204
+ )
205
+
206
+ # resources
207
+ self.agent_space_resource = AgentSpaceResource(self)
208
+ self.private_connection_resource = PrivateConnectionResource(self)
209
+ self.service_resource = ServiceResource(self)
210
+
211
+ def operation_options(
212
+ self, config_overrides: Optional[DevOpsAgentClientConfig] = None
213
+ ) -> tuple[Iterable[Interceptor[Any, Any]], OperationOptions]:
214
+ overrides: DevOpsAgentClientConfig = config_overrides or {}
215
+ interceptors_: list[Interceptor[Any, Any]] = [
216
+ *overrides.get(
217
+ "operation_interceptors", self._config.get("operation_interceptors", [])
218
+ ),
219
+ aws_config(),
220
+ retry(),
221
+ ]
222
+ options_: OperationOptions = OperationOptions(
223
+ client=self._client,
224
+ retry_max_attempts=overrides.get(
225
+ "retry_max_attempts", self._config.get("retry_max_attempts")
226
+ ),
227
+ use_fips=overrides.get("use_fips", self._config.get("use_fips")),
228
+ endpoint=overrides.get("endpoint", self._config.get("endpoint")),
229
+ region=overrides.get("region", self._config.get("region")),
230
+ credentials_provider=overrides.get(
231
+ "credentials_provider", self._config.get("credentials_provider")
232
+ ),
233
+ )
234
+ return interceptors_, options_
235
+
236
+ def create_asset(
237
+ self,
238
+ agent_space_id: "capo_devops_agent.types.agent_space_id.AgentSpaceId",
239
+ asset_type: "capo_devops_agent.types.asset_type.AssetType",
240
+ content: "capo_devops_agent.types.asset_content.AssetContent",
241
+ *,
242
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
243
+ metadata: Optional[object] = None,
244
+ client_token: Optional[str] = None,
245
+ ) -> "capo_devops_agent.types.create_asset_response.CreateAssetResponse":
246
+ """<p>Creates a new asset in the specified agent space</p>
247
+
248
+ Args:
249
+ agent_space_id: <p>The unique identifier for the agent space where the asset will be created</p>
250
+ asset_type: <p>The type of asset to create</p>
251
+ metadata: <p>The metadata describing this asset</p>
252
+ content: <p>The content for the asset. Provide a single file or a zip bundle.</p>
253
+ client_token: <p>A unique, case-sensitive identifier used for idempotent asset creation</p>
254
+
255
+ Raises:
256
+ capo_devops_agent.errors.access_denied_exception.AccessDeniedException: <p>Access to the requested resource is denied due to insufficient permissions.</p>
257
+ capo_devops_agent.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource.</p>
258
+ capo_devops_agent.errors.content_size_exceeded_exception.ContentSizeExceededException: <p>This exception is thrown when the content size exceeds the allowed limit.</p>
259
+ capo_devops_agent.errors.internal_server_exception.InternalServerException: <p>This exception is thrown when an unexpected error occurs in the processing of a request.</p>
260
+ capo_devops_agent.errors.invalid_parameter_exception.InvalidParameterException: <p>One or more parameters provided in the request are invalid.</p>
261
+ capo_devops_agent.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource could not be found.</p>
262
+ capo_devops_agent.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would exceed the service quota limit.</p>
263
+ capo_devops_agent.errors.throttling_exception.ThrottlingException: <p>The request was throttled due to too many requests. Please slow down and try again.</p>
264
+ capo_devops_agent.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service.</p>
265
+ capo_devops_agent.errors.UnknownServiceError: The service returned an error code this client does not model.
266
+ """
267
+
268
+ def _handler(
269
+ req: "OperationRequest[capo_devops_agent.types.create_asset_request.CreateAssetRequest]",
270
+ ) -> OperationResponse[
271
+ "capo_devops_agent.types.create_asset_response.CreateAssetResponse"
272
+ ]:
273
+ import capo_devops_agent._operations.dev_ops_agent.create_asset
274
+
275
+ output, http_response = (
276
+ capo_devops_agent._operations.dev_ops_agent.create_asset.create_asset(
277
+ req.options, req.input
278
+ )
279
+ )
280
+ return OperationResponse(output=output, response=http_response)
281
+
282
+ interceptors_, options_ = self.operation_options(config_overrides)
283
+ input_: capo_devops_agent.types.create_asset_request.CreateAssetRequest = {
284
+ "agent_space_id": agent_space_id,
285
+ "asset_type": asset_type,
286
+ "content": content,
287
+ }
288
+ if metadata is not None:
289
+ input_["metadata"] = metadata
290
+ if client_token is None:
291
+ client_token = str(uuid.uuid4())
292
+ input_["client_token"] = client_token
293
+
294
+ response = execute_pipeline(
295
+ OperationRequest(input=input_, options=options_),
296
+ handler=_handler,
297
+ interceptors=list(interceptors_),
298
+ )
299
+ response.response.close()
300
+ return response.output
301
+
302
+ def create_asset_file(
303
+ self,
304
+ agent_space_id: "capo_devops_agent.types.agent_space_id.AgentSpaceId",
305
+ asset_id: "capo_devops_agent.types.resource_id.ResourceId",
306
+ path: "capo_devops_agent.types.asset_file_path.AssetFilePath",
307
+ content: "capo_devops_agent.types.asset_file_body.AssetFileBody",
308
+ *,
309
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
310
+ metadata: Optional[object] = None,
311
+ client_token: Optional[str] = None,
312
+ ) -> "capo_devops_agent.types.create_asset_file_response.CreateAssetFileResponse":
313
+ """<p>Creates a file in an asset</p>
314
+
315
+ Args:
316
+ agent_space_id: <p>The unique identifier for the agent space containing the asset</p>
317
+ asset_id: <p>The unique identifier of the asset to create the file in</p>
318
+ path: <p>The path of the file within the asset</p>
319
+ content: <p>The content of the file to create</p>
320
+ metadata: <p>Optional metadata describing this file</p>
321
+ client_token: <p>A unique, case-sensitive identifier used for idempotent asset file creation</p>
322
+
323
+ Raises:
324
+ capo_devops_agent.errors.access_denied_exception.AccessDeniedException: <p>Access to the requested resource is denied due to insufficient permissions.</p>
325
+ capo_devops_agent.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource.</p>
326
+ capo_devops_agent.errors.content_size_exceeded_exception.ContentSizeExceededException: <p>This exception is thrown when the content size exceeds the allowed limit.</p>
327
+ capo_devops_agent.errors.internal_server_exception.InternalServerException: <p>This exception is thrown when an unexpected error occurs in the processing of a request.</p>
328
+ capo_devops_agent.errors.invalid_parameter_exception.InvalidParameterException: <p>One or more parameters provided in the request are invalid.</p>
329
+ capo_devops_agent.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource could not be found.</p>
330
+ capo_devops_agent.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would exceed the service quota limit.</p>
331
+ capo_devops_agent.errors.throttling_exception.ThrottlingException: <p>The request was throttled due to too many requests. Please slow down and try again.</p>
332
+ capo_devops_agent.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service.</p>
333
+ capo_devops_agent.errors.UnknownServiceError: The service returned an error code this client does not model.
334
+ """
335
+
336
+ def _handler(
337
+ req: "OperationRequest[capo_devops_agent.types.create_asset_file_request.CreateAssetFileRequest]",
338
+ ) -> OperationResponse[
339
+ "capo_devops_agent.types.create_asset_file_response.CreateAssetFileResponse"
340
+ ]:
341
+ import capo_devops_agent._operations.dev_ops_agent.create_asset_file
342
+
343
+ output, http_response = (
344
+ capo_devops_agent._operations.dev_ops_agent.create_asset_file.create_asset_file(
345
+ req.options, req.input
346
+ )
347
+ )
348
+ return OperationResponse(output=output, response=http_response)
349
+
350
+ interceptors_, options_ = self.operation_options(config_overrides)
351
+ input_: capo_devops_agent.types.create_asset_file_request.CreateAssetFileRequest = {
352
+ "agent_space_id": agent_space_id,
353
+ "asset_id": asset_id,
354
+ "path": path,
355
+ "content": content,
356
+ }
357
+ if metadata is not None:
358
+ input_["metadata"] = metadata
359
+ if client_token is None:
360
+ client_token = str(uuid.uuid4())
361
+ input_["client_token"] = client_token
362
+
363
+ response = execute_pipeline(
364
+ OperationRequest(input=input_, options=options_),
365
+ handler=_handler,
366
+ interceptors=list(interceptors_),
367
+ )
368
+ response.response.close()
369
+ return response.output
370
+
371
+ def create_backlog_task(
372
+ self,
373
+ agent_space_id: "capo_devops_agent.types.agent_space_id.AgentSpaceId",
374
+ task_type: "capo_devops_agent.types.task_type.TaskType",
375
+ title: "capo_devops_agent.types.backlog_task_title.BacklogTaskTitle",
376
+ priority: "capo_devops_agent.types.priority.Priority",
377
+ *,
378
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
379
+ reference: Optional[
380
+ "capo_devops_agent.types.reference_input.ReferenceInput"
381
+ ] = None,
382
+ description: Optional[
383
+ "capo_devops_agent.types.backlog_task_description.BacklogTaskDescription"
384
+ ] = None,
385
+ client_token: Optional[str] = None,
386
+ ) -> (
387
+ "capo_devops_agent.types.create_backlog_task_response.CreateBacklogTaskResponse"
388
+ ):
389
+ """<p>Creates a new backlog task in the specified agent space</p>
390
+
391
+ Args:
392
+ agent_space_id: <p>The unique identifier for the agent space where the task will be created</p>
393
+ reference: <p>Optional reference information for the task</p>
394
+ task_type: <p>The type of task being created</p>
395
+ title: <p>The title of the backlog task</p>
396
+ description: <p>Optional detailed description of the task</p>
397
+ priority: <p>The priority level of the task</p>
398
+ client_token: <p>Client-provided token for idempotent operations</p>
399
+
400
+ Raises:
401
+ capo_devops_agent.errors.access_denied_exception.AccessDeniedException: <p>Access to the requested resource is denied due to insufficient permissions.</p>
402
+ capo_devops_agent.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource.</p>
403
+ capo_devops_agent.errors.content_size_exceeded_exception.ContentSizeExceededException: <p>This exception is thrown when the content size exceeds the allowed limit.</p>
404
+ capo_devops_agent.errors.internal_server_exception.InternalServerException: <p>This exception is thrown when an unexpected error occurs in the processing of a request.</p>
405
+ capo_devops_agent.errors.invalid_parameter_exception.InvalidParameterException: <p>One or more parameters provided in the request are invalid.</p>
406
+ capo_devops_agent.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource could not be found.</p>
407
+ capo_devops_agent.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would exceed the service quota limit.</p>
408
+ capo_devops_agent.errors.throttling_exception.ThrottlingException: <p>The request was throttled due to too many requests. Please slow down and try again.</p>
409
+ capo_devops_agent.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service.</p>
410
+ capo_devops_agent.errors.UnknownServiceError: The service returned an error code this client does not model.
411
+ """
412
+
413
+ def _handler(
414
+ req: "OperationRequest[capo_devops_agent.types.create_backlog_task_request.CreateBacklogTaskRequest]",
415
+ ) -> OperationResponse[
416
+ "capo_devops_agent.types.create_backlog_task_response.CreateBacklogTaskResponse"
417
+ ]:
418
+ import capo_devops_agent._operations.dev_ops_agent.create_backlog_task
419
+
420
+ output, http_response = (
421
+ capo_devops_agent._operations.dev_ops_agent.create_backlog_task.create_backlog_task(
422
+ req.options, req.input
423
+ )
424
+ )
425
+ return OperationResponse(output=output, response=http_response)
426
+
427
+ interceptors_, options_ = self.operation_options(config_overrides)
428
+ input_: capo_devops_agent.types.create_backlog_task_request.CreateBacklogTaskRequest = {
429
+ "agent_space_id": agent_space_id,
430
+ "task_type": task_type,
431
+ "title": title,
432
+ "priority": priority,
433
+ }
434
+ if reference is not None:
435
+ input_["reference"] = reference
436
+ if description is not None:
437
+ input_["description"] = description
438
+ if client_token is None:
439
+ client_token = str(uuid.uuid4())
440
+ input_["client_token"] = client_token
441
+
442
+ response = execute_pipeline(
443
+ OperationRequest(input=input_, options=options_),
444
+ handler=_handler,
445
+ interceptors=list(interceptors_),
446
+ )
447
+ response.response.close()
448
+ return response.output
449
+
450
+ def create_chat(
451
+ self,
452
+ agent_space_id: "capo_devops_agent.types.agent_space_id.AgentSpaceId",
453
+ *,
454
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
455
+ user_id: Optional["capo_devops_agent.types.resource_id.ResourceId"] = None,
456
+ user_type: Optional["capo_devops_agent.types.user_type.UserType"] = None,
457
+ ) -> "capo_devops_agent.types.create_chat_response.CreateChatResponse":
458
+ """<p>Creates a new chat execution in the specified agent space</p>
459
+
460
+ Args:
461
+ user_id: <p>The user identifier for the chat. This field is deprecated and will be ignored — the service resolves user identity from the authenticated session.</p>
462
+ user_type: <p>The authentication type of the user</p>
463
+
464
+ Raises:
465
+ capo_devops_agent.errors.access_denied_exception.AccessDeniedException: <p>Access to the requested resource is denied due to insufficient permissions.</p>
466
+ capo_devops_agent.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource.</p>
467
+ capo_devops_agent.errors.content_size_exceeded_exception.ContentSizeExceededException: <p>This exception is thrown when the content size exceeds the allowed limit.</p>
468
+ capo_devops_agent.errors.internal_server_exception.InternalServerException: <p>This exception is thrown when an unexpected error occurs in the processing of a request.</p>
469
+ capo_devops_agent.errors.invalid_parameter_exception.InvalidParameterException: <p>One or more parameters provided in the request are invalid.</p>
470
+ capo_devops_agent.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource could not be found.</p>
471
+ capo_devops_agent.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would exceed the service quota limit.</p>
472
+ capo_devops_agent.errors.throttling_exception.ThrottlingException: <p>The request was throttled due to too many requests. Please slow down and try again.</p>
473
+ capo_devops_agent.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service.</p>
474
+ capo_devops_agent.errors.UnknownServiceError: The service returned an error code this client does not model.
475
+ """
476
+
477
+ def _handler(
478
+ req: "OperationRequest[capo_devops_agent.types.create_chat_request.CreateChatRequest]",
479
+ ) -> OperationResponse[
480
+ "capo_devops_agent.types.create_chat_response.CreateChatResponse"
481
+ ]:
482
+ import capo_devops_agent._operations.dev_ops_agent.create_chat
483
+
484
+ output, http_response = (
485
+ capo_devops_agent._operations.dev_ops_agent.create_chat.create_chat(
486
+ req.options, req.input
487
+ )
488
+ )
489
+ return OperationResponse(output=output, response=http_response)
490
+
491
+ interceptors_, options_ = self.operation_options(config_overrides)
492
+ input_: capo_devops_agent.types.create_chat_request.CreateChatRequest = {
493
+ "agent_space_id": agent_space_id
494
+ }
495
+ if user_id is not None:
496
+ input_["user_id"] = user_id
497
+ if user_type is not None:
498
+ input_["user_type"] = user_type
499
+
500
+ response = execute_pipeline(
501
+ OperationRequest(input=input_, options=options_),
502
+ handler=_handler,
503
+ interceptors=list(interceptors_),
504
+ )
505
+ response.response.close()
506
+ return response.output
507
+
508
+ def delete_asset(
509
+ self,
510
+ agent_space_id: "capo_devops_agent.types.agent_space_id.AgentSpaceId",
511
+ asset_id: "capo_devops_agent.types.resource_id.ResourceId",
512
+ *,
513
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
514
+ ) -> "capo_devops_agent.types.delete_asset_response.DeleteAssetResponse":
515
+ """<p>Deletes an asset and all its files from the specified agent space</p>
516
+
517
+ Args:
518
+ agent_space_id: <p>The unique identifier for the agent space containing the asset</p>
519
+ asset_id: <p>The unique identifier of the asset to delete</p>
520
+
521
+ Raises:
522
+ capo_devops_agent.errors.access_denied_exception.AccessDeniedException: <p>Access to the requested resource is denied due to insufficient permissions.</p>
523
+ capo_devops_agent.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource.</p>
524
+ capo_devops_agent.errors.content_size_exceeded_exception.ContentSizeExceededException: <p>This exception is thrown when the content size exceeds the allowed limit.</p>
525
+ capo_devops_agent.errors.internal_server_exception.InternalServerException: <p>This exception is thrown when an unexpected error occurs in the processing of a request.</p>
526
+ capo_devops_agent.errors.invalid_parameter_exception.InvalidParameterException: <p>One or more parameters provided in the request are invalid.</p>
527
+ capo_devops_agent.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource could not be found.</p>
528
+ capo_devops_agent.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would exceed the service quota limit.</p>
529
+ capo_devops_agent.errors.throttling_exception.ThrottlingException: <p>The request was throttled due to too many requests. Please slow down and try again.</p>
530
+ capo_devops_agent.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service.</p>
531
+ capo_devops_agent.errors.UnknownServiceError: The service returned an error code this client does not model.
532
+ """
533
+
534
+ def _handler(
535
+ req: "OperationRequest[capo_devops_agent.types.delete_asset_request.DeleteAssetRequest]",
536
+ ) -> OperationResponse[
537
+ "capo_devops_agent.types.delete_asset_response.DeleteAssetResponse"
538
+ ]:
539
+ import capo_devops_agent._operations.dev_ops_agent.delete_asset
540
+
541
+ output, http_response = (
542
+ capo_devops_agent._operations.dev_ops_agent.delete_asset.delete_asset(
543
+ req.options, req.input
544
+ )
545
+ )
546
+ return OperationResponse(output=output, response=http_response)
547
+
548
+ interceptors_, options_ = self.operation_options(config_overrides)
549
+ input_: capo_devops_agent.types.delete_asset_request.DeleteAssetRequest = {
550
+ "agent_space_id": agent_space_id,
551
+ "asset_id": asset_id,
552
+ }
553
+
554
+ response = execute_pipeline(
555
+ OperationRequest(input=input_, options=options_),
556
+ handler=_handler,
557
+ interceptors=list(interceptors_),
558
+ )
559
+ response.response.close()
560
+ return response.output
561
+
562
+ def delete_asset_file(
563
+ self,
564
+ agent_space_id: "capo_devops_agent.types.agent_space_id.AgentSpaceId",
565
+ asset_id: "capo_devops_agent.types.resource_id.ResourceId",
566
+ path: "capo_devops_agent.types.asset_file_path.AssetFilePath",
567
+ *,
568
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
569
+ ) -> "capo_devops_agent.types.delete_asset_file_response.DeleteAssetFileResponse":
570
+ """<p>Deletes a file from an asset</p>
571
+
572
+ Args:
573
+ agent_space_id: <p>The unique identifier for the agent space containing the asset</p>
574
+ asset_id: <p>The unique identifier of the asset containing the file</p>
575
+ path: <p>The path of the file within the asset to delete</p>
576
+
577
+ Raises:
578
+ capo_devops_agent.errors.access_denied_exception.AccessDeniedException: <p>Access to the requested resource is denied due to insufficient permissions.</p>
579
+ capo_devops_agent.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource.</p>
580
+ capo_devops_agent.errors.content_size_exceeded_exception.ContentSizeExceededException: <p>This exception is thrown when the content size exceeds the allowed limit.</p>
581
+ capo_devops_agent.errors.internal_server_exception.InternalServerException: <p>This exception is thrown when an unexpected error occurs in the processing of a request.</p>
582
+ capo_devops_agent.errors.invalid_parameter_exception.InvalidParameterException: <p>One or more parameters provided in the request are invalid.</p>
583
+ capo_devops_agent.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource could not be found.</p>
584
+ capo_devops_agent.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would exceed the service quota limit.</p>
585
+ capo_devops_agent.errors.throttling_exception.ThrottlingException: <p>The request was throttled due to too many requests. Please slow down and try again.</p>
586
+ capo_devops_agent.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service.</p>
587
+ capo_devops_agent.errors.UnknownServiceError: The service returned an error code this client does not model.
588
+ """
589
+
590
+ def _handler(
591
+ req: "OperationRequest[capo_devops_agent.types.delete_asset_file_request.DeleteAssetFileRequest]",
592
+ ) -> OperationResponse[
593
+ "capo_devops_agent.types.delete_asset_file_response.DeleteAssetFileResponse"
594
+ ]:
595
+ import capo_devops_agent._operations.dev_ops_agent.delete_asset_file
596
+
597
+ output, http_response = (
598
+ capo_devops_agent._operations.dev_ops_agent.delete_asset_file.delete_asset_file(
599
+ req.options, req.input
600
+ )
601
+ )
602
+ return OperationResponse(output=output, response=http_response)
603
+
604
+ interceptors_, options_ = self.operation_options(config_overrides)
605
+ input_: capo_devops_agent.types.delete_asset_file_request.DeleteAssetFileRequest = {
606
+ "agent_space_id": agent_space_id,
607
+ "asset_id": asset_id,
608
+ "path": path,
609
+ }
610
+
611
+ response = execute_pipeline(
612
+ OperationRequest(input=input_, options=options_),
613
+ handler=_handler,
614
+ interceptors=list(interceptors_),
615
+ )
616
+ response.response.close()
617
+ return response.output
618
+
619
+ def get_account_usage(
620
+ self, *, config_overrides: Optional[DevOpsAgentClientConfig] = None
621
+ ) -> "capo_devops_agent.types.get_account_usage_output.GetAccountUsageOutput":
622
+ """<p>Retrieves monthly account usage metrics and limits for the AWS account.</p>
623
+
624
+ Raises:
625
+ capo_devops_agent.errors.access_denied_exception.AccessDeniedException: <p>Access to the requested resource is denied due to insufficient permissions.</p>
626
+ capo_devops_agent.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource.</p>
627
+ capo_devops_agent.errors.content_size_exceeded_exception.ContentSizeExceededException: <p>This exception is thrown when the content size exceeds the allowed limit.</p>
628
+ capo_devops_agent.errors.internal_server_exception.InternalServerException: <p>This exception is thrown when an unexpected error occurs in the processing of a request.</p>
629
+ capo_devops_agent.errors.invalid_parameter_exception.InvalidParameterException: <p>One or more parameters provided in the request are invalid.</p>
630
+ capo_devops_agent.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource could not be found.</p>
631
+ capo_devops_agent.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would exceed the service quota limit.</p>
632
+ capo_devops_agent.errors.throttling_exception.ThrottlingException: <p>The request was throttled due to too many requests. Please slow down and try again.</p>
633
+ capo_devops_agent.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service.</p>
634
+ capo_devops_agent.errors.UnknownServiceError: The service returned an error code this client does not model.
635
+ """
636
+
637
+ def _handler(
638
+ req: "OperationRequest[capo_devops_agent.types.get_account_usage_input.GetAccountUsageInput]",
639
+ ) -> OperationResponse[
640
+ "capo_devops_agent.types.get_account_usage_output.GetAccountUsageOutput"
641
+ ]:
642
+ import capo_devops_agent._operations.dev_ops_agent.get_account_usage
643
+
644
+ output, http_response = (
645
+ capo_devops_agent._operations.dev_ops_agent.get_account_usage.get_account_usage(
646
+ req.options, req.input
647
+ )
648
+ )
649
+ return OperationResponse(output=output, response=http_response)
650
+
651
+ interceptors_, options_ = self.operation_options(config_overrides)
652
+ input_: capo_devops_agent.types.get_account_usage_input.GetAccountUsageInput = {}
653
+
654
+ response = execute_pipeline(
655
+ OperationRequest(input=input_, options=options_),
656
+ handler=_handler,
657
+ interceptors=list(interceptors_),
658
+ )
659
+ response.response.close()
660
+ return response.output
661
+
662
+ def get_asset(
663
+ self,
664
+ agent_space_id: "capo_devops_agent.types.agent_space_id.AgentSpaceId",
665
+ asset_id: "capo_devops_agent.types.resource_id.ResourceId",
666
+ *,
667
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
668
+ asset_version: Optional[int] = None,
669
+ ) -> "capo_devops_agent.types.get_asset_response.GetAssetResponse":
670
+ """<p>Gets an asset from the specified agent space</p>
671
+
672
+ Args:
673
+ agent_space_id: <p>The unique identifier for the agent space containing the asset</p>
674
+ asset_id: <p>The unique identifier of the asset to retrieve</p>
675
+ asset_version: <p>The specific version of the asset to retrieve. If omitted, the latest version is returned.</p>
676
+
677
+ Raises:
678
+ capo_devops_agent.errors.access_denied_exception.AccessDeniedException: <p>Access to the requested resource is denied due to insufficient permissions.</p>
679
+ capo_devops_agent.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource.</p>
680
+ capo_devops_agent.errors.content_size_exceeded_exception.ContentSizeExceededException: <p>This exception is thrown when the content size exceeds the allowed limit.</p>
681
+ capo_devops_agent.errors.internal_server_exception.InternalServerException: <p>This exception is thrown when an unexpected error occurs in the processing of a request.</p>
682
+ capo_devops_agent.errors.invalid_parameter_exception.InvalidParameterException: <p>One or more parameters provided in the request are invalid.</p>
683
+ capo_devops_agent.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource could not be found.</p>
684
+ capo_devops_agent.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would exceed the service quota limit.</p>
685
+ capo_devops_agent.errors.throttling_exception.ThrottlingException: <p>The request was throttled due to too many requests. Please slow down and try again.</p>
686
+ capo_devops_agent.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service.</p>
687
+ capo_devops_agent.errors.UnknownServiceError: The service returned an error code this client does not model.
688
+ """
689
+
690
+ def _handler(
691
+ req: "OperationRequest[capo_devops_agent.types.get_asset_request.GetAssetRequest]",
692
+ ) -> OperationResponse[
693
+ "capo_devops_agent.types.get_asset_response.GetAssetResponse"
694
+ ]:
695
+ import capo_devops_agent._operations.dev_ops_agent.get_asset
696
+
697
+ output, http_response = (
698
+ capo_devops_agent._operations.dev_ops_agent.get_asset.get_asset(
699
+ req.options, req.input
700
+ )
701
+ )
702
+ return OperationResponse(output=output, response=http_response)
703
+
704
+ interceptors_, options_ = self.operation_options(config_overrides)
705
+ input_: capo_devops_agent.types.get_asset_request.GetAssetRequest = {
706
+ "agent_space_id": agent_space_id,
707
+ "asset_id": asset_id,
708
+ }
709
+ if asset_version is not None:
710
+ input_["asset_version"] = asset_version
711
+
712
+ response = execute_pipeline(
713
+ OperationRequest(input=input_, options=options_),
714
+ handler=_handler,
715
+ interceptors=list(interceptors_),
716
+ )
717
+ response.response.close()
718
+ return response.output
719
+
720
+ def get_asset_content(
721
+ self,
722
+ agent_space_id: "capo_devops_agent.types.agent_space_id.AgentSpaceId",
723
+ asset_id: "capo_devops_agent.types.resource_id.ResourceId",
724
+ *,
725
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
726
+ asset_version: Optional[int] = None,
727
+ ) -> "capo_devops_agent.types.get_asset_content_response.GetAssetContentResponse":
728
+ """<p>Gets an asset's content as a zip bundle</p>
729
+
730
+ Args:
731
+ agent_space_id: <p>The unique identifier for the agent space containing the asset</p>
732
+ asset_id: <p>The unique identifier of the asset</p>
733
+ asset_version: <p>The specific asset version to export. If omitted, the latest version is returned.</p>
734
+
735
+ Raises:
736
+ capo_devops_agent.errors.access_denied_exception.AccessDeniedException: <p>Access to the requested resource is denied due to insufficient permissions.</p>
737
+ capo_devops_agent.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource.</p>
738
+ capo_devops_agent.errors.content_size_exceeded_exception.ContentSizeExceededException: <p>This exception is thrown when the content size exceeds the allowed limit.</p>
739
+ capo_devops_agent.errors.internal_server_exception.InternalServerException: <p>This exception is thrown when an unexpected error occurs in the processing of a request.</p>
740
+ capo_devops_agent.errors.invalid_parameter_exception.InvalidParameterException: <p>One or more parameters provided in the request are invalid.</p>
741
+ capo_devops_agent.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource could not be found.</p>
742
+ capo_devops_agent.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would exceed the service quota limit.</p>
743
+ capo_devops_agent.errors.throttling_exception.ThrottlingException: <p>The request was throttled due to too many requests. Please slow down and try again.</p>
744
+ capo_devops_agent.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service.</p>
745
+ capo_devops_agent.errors.UnknownServiceError: The service returned an error code this client does not model.
746
+ """
747
+
748
+ def _handler(
749
+ req: "OperationRequest[capo_devops_agent.types.get_asset_content_request.GetAssetContentRequest]",
750
+ ) -> OperationResponse[
751
+ "capo_devops_agent.types.get_asset_content_response.GetAssetContentResponse"
752
+ ]:
753
+ import capo_devops_agent._operations.dev_ops_agent.get_asset_content
754
+
755
+ output, http_response = (
756
+ capo_devops_agent._operations.dev_ops_agent.get_asset_content.get_asset_content(
757
+ req.options, req.input
758
+ )
759
+ )
760
+ return OperationResponse(output=output, response=http_response)
761
+
762
+ interceptors_, options_ = self.operation_options(config_overrides)
763
+ input_: capo_devops_agent.types.get_asset_content_request.GetAssetContentRequest = {
764
+ "agent_space_id": agent_space_id,
765
+ "asset_id": asset_id,
766
+ }
767
+ if asset_version is not None:
768
+ input_["asset_version"] = asset_version
769
+
770
+ response = execute_pipeline(
771
+ OperationRequest(input=input_, options=options_),
772
+ handler=_handler,
773
+ interceptors=list(interceptors_),
774
+ )
775
+ response.response.close()
776
+ return response.output
777
+
778
+ def get_asset_file(
779
+ self,
780
+ agent_space_id: "capo_devops_agent.types.agent_space_id.AgentSpaceId",
781
+ asset_id: "capo_devops_agent.types.resource_id.ResourceId",
782
+ path: "capo_devops_agent.types.asset_file_path.AssetFilePath",
783
+ *,
784
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
785
+ asset_version: Optional[int] = None,
786
+ ) -> "capo_devops_agent.types.get_asset_file_response.GetAssetFileResponse":
787
+ """<p>Gets a file from an asset</p>
788
+
789
+ Args:
790
+ agent_space_id: <p>The unique identifier for the agent space containing the asset</p>
791
+ asset_id: <p>The unique identifier of the asset containing the file</p>
792
+ path: <p>The path of the file within the asset to retrieve</p>
793
+ asset_version: <p>The specific asset version to retrieve the file from. If omitted, the latest version is returned.</p>
794
+
795
+ Raises:
796
+ capo_devops_agent.errors.access_denied_exception.AccessDeniedException: <p>Access to the requested resource is denied due to insufficient permissions.</p>
797
+ capo_devops_agent.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource.</p>
798
+ capo_devops_agent.errors.content_size_exceeded_exception.ContentSizeExceededException: <p>This exception is thrown when the content size exceeds the allowed limit.</p>
799
+ capo_devops_agent.errors.internal_server_exception.InternalServerException: <p>This exception is thrown when an unexpected error occurs in the processing of a request.</p>
800
+ capo_devops_agent.errors.invalid_parameter_exception.InvalidParameterException: <p>One or more parameters provided in the request are invalid.</p>
801
+ capo_devops_agent.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource could not be found.</p>
802
+ capo_devops_agent.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would exceed the service quota limit.</p>
803
+ capo_devops_agent.errors.throttling_exception.ThrottlingException: <p>The request was throttled due to too many requests. Please slow down and try again.</p>
804
+ capo_devops_agent.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service.</p>
805
+ capo_devops_agent.errors.UnknownServiceError: The service returned an error code this client does not model.
806
+ """
807
+
808
+ def _handler(
809
+ req: "OperationRequest[capo_devops_agent.types.get_asset_file_request.GetAssetFileRequest]",
810
+ ) -> OperationResponse[
811
+ "capo_devops_agent.types.get_asset_file_response.GetAssetFileResponse"
812
+ ]:
813
+ import capo_devops_agent._operations.dev_ops_agent.get_asset_file
814
+
815
+ output, http_response = (
816
+ capo_devops_agent._operations.dev_ops_agent.get_asset_file.get_asset_file(
817
+ req.options, req.input
818
+ )
819
+ )
820
+ return OperationResponse(output=output, response=http_response)
821
+
822
+ interceptors_, options_ = self.operation_options(config_overrides)
823
+ input_: capo_devops_agent.types.get_asset_file_request.GetAssetFileRequest = {
824
+ "agent_space_id": agent_space_id,
825
+ "asset_id": asset_id,
826
+ "path": path,
827
+ }
828
+ if asset_version is not None:
829
+ input_["asset_version"] = asset_version
830
+
831
+ response = execute_pipeline(
832
+ OperationRequest(input=input_, options=options_),
833
+ handler=_handler,
834
+ interceptors=list(interceptors_),
835
+ )
836
+ response.response.close()
837
+ return response.output
838
+
839
+ def get_backlog_task(
840
+ self,
841
+ agent_space_id: "capo_devops_agent.types.agent_space_id.AgentSpaceId",
842
+ task_id: "capo_devops_agent.types.resource_id.ResourceId",
843
+ *,
844
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
845
+ ) -> "capo_devops_agent.types.get_backlog_task_response.GetBacklogTaskResponse":
846
+ """<p>Gets a backlog task for the specified agent space and task id</p>
847
+
848
+ Args:
849
+ agent_space_id: <p>The unique identifier for the agent space containing the task</p>
850
+ task_id: <p>The unique identifier of the task to retrieve</p>
851
+
852
+ Raises:
853
+ capo_devops_agent.errors.access_denied_exception.AccessDeniedException: <p>Access to the requested resource is denied due to insufficient permissions.</p>
854
+ capo_devops_agent.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource.</p>
855
+ capo_devops_agent.errors.content_size_exceeded_exception.ContentSizeExceededException: <p>This exception is thrown when the content size exceeds the allowed limit.</p>
856
+ capo_devops_agent.errors.internal_server_exception.InternalServerException: <p>This exception is thrown when an unexpected error occurs in the processing of a request.</p>
857
+ capo_devops_agent.errors.invalid_parameter_exception.InvalidParameterException: <p>One or more parameters provided in the request are invalid.</p>
858
+ capo_devops_agent.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource could not be found.</p>
859
+ capo_devops_agent.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would exceed the service quota limit.</p>
860
+ capo_devops_agent.errors.throttling_exception.ThrottlingException: <p>The request was throttled due to too many requests. Please slow down and try again.</p>
861
+ capo_devops_agent.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service.</p>
862
+ capo_devops_agent.errors.UnknownServiceError: The service returned an error code this client does not model.
863
+ """
864
+
865
+ def _handler(
866
+ req: "OperationRequest[capo_devops_agent.types.get_backlog_task_request.GetBacklogTaskRequest]",
867
+ ) -> OperationResponse[
868
+ "capo_devops_agent.types.get_backlog_task_response.GetBacklogTaskResponse"
869
+ ]:
870
+ import capo_devops_agent._operations.dev_ops_agent.get_backlog_task
871
+
872
+ output, http_response = (
873
+ capo_devops_agent._operations.dev_ops_agent.get_backlog_task.get_backlog_task(
874
+ req.options, req.input
875
+ )
876
+ )
877
+ return OperationResponse(output=output, response=http_response)
878
+
879
+ interceptors_, options_ = self.operation_options(config_overrides)
880
+ input_: capo_devops_agent.types.get_backlog_task_request.GetBacklogTaskRequest = {
881
+ "agent_space_id": agent_space_id,
882
+ "task_id": task_id,
883
+ }
884
+
885
+ response = execute_pipeline(
886
+ OperationRequest(input=input_, options=options_),
887
+ handler=_handler,
888
+ interceptors=list(interceptors_),
889
+ )
890
+ response.response.close()
891
+ return response.output
892
+
893
+ def get_recommendation(
894
+ self,
895
+ agent_space_id: "capo_devops_agent.types.agent_space_id.AgentSpaceId",
896
+ recommendation_id: "capo_devops_agent.types.resource_id.ResourceId",
897
+ *,
898
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
899
+ recommendation_version: Optional[int] = None,
900
+ ) -> (
901
+ "capo_devops_agent.types.get_recommendation_response.GetRecommendationResponse"
902
+ ):
903
+ """<p>Retrieves a specific recommendation by its ID</p>
904
+
905
+ Args:
906
+ agent_space_id: <p>The unique identifier for the agent space containing the recommendation</p>
907
+ recommendation_id: <p>The unique identifier for the recommendation to retrieve</p>
908
+ recommendation_version: <p>Specific version of the recommendation to retrieve. If not specified, returns the latest version.</p>
909
+
910
+ Raises:
911
+ capo_devops_agent.errors.access_denied_exception.AccessDeniedException: <p>Access to the requested resource is denied due to insufficient permissions.</p>
912
+ capo_devops_agent.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource.</p>
913
+ capo_devops_agent.errors.content_size_exceeded_exception.ContentSizeExceededException: <p>This exception is thrown when the content size exceeds the allowed limit.</p>
914
+ capo_devops_agent.errors.internal_server_exception.InternalServerException: <p>This exception is thrown when an unexpected error occurs in the processing of a request.</p>
915
+ capo_devops_agent.errors.invalid_parameter_exception.InvalidParameterException: <p>One or more parameters provided in the request are invalid.</p>
916
+ capo_devops_agent.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource could not be found.</p>
917
+ capo_devops_agent.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would exceed the service quota limit.</p>
918
+ capo_devops_agent.errors.throttling_exception.ThrottlingException: <p>The request was throttled due to too many requests. Please slow down and try again.</p>
919
+ capo_devops_agent.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service.</p>
920
+ capo_devops_agent.errors.UnknownServiceError: The service returned an error code this client does not model.
921
+ """
922
+
923
+ def _handler(
924
+ req: "OperationRequest[capo_devops_agent.types.get_recommendation_request.GetRecommendationRequest]",
925
+ ) -> OperationResponse[
926
+ "capo_devops_agent.types.get_recommendation_response.GetRecommendationResponse"
927
+ ]:
928
+ import capo_devops_agent._operations.dev_ops_agent.get_recommendation
929
+
930
+ output, http_response = (
931
+ capo_devops_agent._operations.dev_ops_agent.get_recommendation.get_recommendation(
932
+ req.options, req.input
933
+ )
934
+ )
935
+ return OperationResponse(output=output, response=http_response)
936
+
937
+ interceptors_, options_ = self.operation_options(config_overrides)
938
+ input_: capo_devops_agent.types.get_recommendation_request.GetRecommendationRequest = {
939
+ "agent_space_id": agent_space_id,
940
+ "recommendation_id": recommendation_id,
941
+ }
942
+ if recommendation_version is not None:
943
+ input_["recommendation_version"] = recommendation_version
944
+
945
+ response = execute_pipeline(
946
+ OperationRequest(input=input_, options=options_),
947
+ handler=_handler,
948
+ interceptors=list(interceptors_),
949
+ )
950
+ response.response.close()
951
+ return response.output
952
+
953
+ def list_asset_files(
954
+ self,
955
+ agent_space_id: "capo_devops_agent.types.agent_space_id.AgentSpaceId",
956
+ asset_id: "capo_devops_agent.types.resource_id.ResourceId",
957
+ *,
958
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
959
+ asset_version: Optional[int] = None,
960
+ next_token: Optional["capo_devops_agent.types.next_token.NextToken"] = None,
961
+ max_results: Optional[int] = None,
962
+ ) -> "capo_devops_agent.types.list_asset_files_response.ListAssetFilesResponse":
963
+ """<p>Lists files in an asset</p>
964
+
965
+ Args:
966
+ agent_space_id: <p>The unique identifier for the agent space containing the asset</p>
967
+ asset_id: <p>The unique identifier of the asset whose files to list</p>
968
+ asset_version: <p>The specific asset version to list files from. If omitted, files from the latest version are returned.</p>
969
+ next_token: <p>Pagination token from a previous response to retrieve the next page of results</p>
970
+ max_results: <p>The maximum number of results to return in a single response</p>
971
+
972
+ Raises:
973
+ capo_devops_agent.errors.access_denied_exception.AccessDeniedException: <p>Access to the requested resource is denied due to insufficient permissions.</p>
974
+ capo_devops_agent.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource.</p>
975
+ capo_devops_agent.errors.content_size_exceeded_exception.ContentSizeExceededException: <p>This exception is thrown when the content size exceeds the allowed limit.</p>
976
+ capo_devops_agent.errors.internal_server_exception.InternalServerException: <p>This exception is thrown when an unexpected error occurs in the processing of a request.</p>
977
+ capo_devops_agent.errors.invalid_parameter_exception.InvalidParameterException: <p>One or more parameters provided in the request are invalid.</p>
978
+ capo_devops_agent.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource could not be found.</p>
979
+ capo_devops_agent.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would exceed the service quota limit.</p>
980
+ capo_devops_agent.errors.throttling_exception.ThrottlingException: <p>The request was throttled due to too many requests. Please slow down and try again.</p>
981
+ capo_devops_agent.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service.</p>
982
+ capo_devops_agent.errors.UnknownServiceError: The service returned an error code this client does not model.
983
+ """
984
+
985
+ def _handler(
986
+ req: "OperationRequest[capo_devops_agent.types.list_asset_files_request.ListAssetFilesRequest]",
987
+ ) -> OperationResponse[
988
+ "capo_devops_agent.types.list_asset_files_response.ListAssetFilesResponse"
989
+ ]:
990
+ import capo_devops_agent._operations.dev_ops_agent.list_asset_files
991
+
992
+ output, http_response = (
993
+ capo_devops_agent._operations.dev_ops_agent.list_asset_files.list_asset_files(
994
+ req.options, req.input
995
+ )
996
+ )
997
+ return OperationResponse(output=output, response=http_response)
998
+
999
+ interceptors_, options_ = self.operation_options(config_overrides)
1000
+ input_: capo_devops_agent.types.list_asset_files_request.ListAssetFilesRequest = {
1001
+ "agent_space_id": agent_space_id,
1002
+ "asset_id": asset_id,
1003
+ }
1004
+ if asset_version is not None:
1005
+ input_["asset_version"] = asset_version
1006
+ if next_token is not None:
1007
+ input_["next_token"] = next_token
1008
+ if max_results is not None:
1009
+ input_["max_results"] = max_results
1010
+
1011
+ response = execute_pipeline(
1012
+ OperationRequest(input=input_, options=options_),
1013
+ handler=_handler,
1014
+ interceptors=list(interceptors_),
1015
+ )
1016
+ response.response.close()
1017
+ return response.output
1018
+
1019
+ def iter_list_asset_files(
1020
+ self,
1021
+ agent_space_id: "capo_devops_agent.types.agent_space_id.AgentSpaceId",
1022
+ asset_id: "capo_devops_agent.types.resource_id.ResourceId",
1023
+ *,
1024
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
1025
+ asset_version: Optional[int] = None,
1026
+ next_token: Optional["capo_devops_agent.types.next_token.NextToken"] = None,
1027
+ max_results: Optional[int] = None,
1028
+ ) -> "Iterator[capo_devops_agent.types.asset_file_summary.AssetFileSummary]":
1029
+ _token = next_token
1030
+ while True:
1031
+ _response = self.list_asset_files(
1032
+ agent_space_id,
1033
+ asset_id,
1034
+ config_overrides=config_overrides,
1035
+ asset_version=asset_version,
1036
+ next_token=_token,
1037
+ max_results=max_results,
1038
+ )
1039
+ _page = _resolve_path(_response, ("items",))
1040
+ for _item in _page or []:
1041
+ yield _item
1042
+ _token = _resolve_path(_response, ("next_token",))
1043
+ if not _token:
1044
+ break
1045
+
1046
+ def list_assets(
1047
+ self,
1048
+ agent_space_id: "capo_devops_agent.types.agent_space_id.AgentSpaceId",
1049
+ *,
1050
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
1051
+ asset_type: Optional["capo_devops_agent.types.asset_type.AssetType"] = None,
1052
+ updated_after: Optional[datetime.datetime] = None,
1053
+ updated_before: Optional[datetime.datetime] = None,
1054
+ next_token: Optional["capo_devops_agent.types.next_token.NextToken"] = None,
1055
+ max_results: Optional[int] = None,
1056
+ ) -> "capo_devops_agent.types.list_assets_response.ListAssetsResponse":
1057
+ """<p>Lists assets in the specified agent space</p>
1058
+
1059
+ Args:
1060
+ agent_space_id: <p>The unique identifier for the agent space to list assets from</p>
1061
+ asset_type: <p>Filter results to only assets of this type</p>
1062
+ updated_after: <p>Filter results to only assets updated after this timestamp</p>
1063
+ updated_before: <p>Filter results to only assets updated before this timestamp</p>
1064
+ next_token: <p>Pagination token from a previous response to retrieve the next page of results</p>
1065
+ max_results: <p>The maximum number of results to return in a single response</p>
1066
+
1067
+ Raises:
1068
+ capo_devops_agent.errors.access_denied_exception.AccessDeniedException: <p>Access to the requested resource is denied due to insufficient permissions.</p>
1069
+ capo_devops_agent.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource.</p>
1070
+ capo_devops_agent.errors.content_size_exceeded_exception.ContentSizeExceededException: <p>This exception is thrown when the content size exceeds the allowed limit.</p>
1071
+ capo_devops_agent.errors.internal_server_exception.InternalServerException: <p>This exception is thrown when an unexpected error occurs in the processing of a request.</p>
1072
+ capo_devops_agent.errors.invalid_parameter_exception.InvalidParameterException: <p>One or more parameters provided in the request are invalid.</p>
1073
+ capo_devops_agent.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource could not be found.</p>
1074
+ capo_devops_agent.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would exceed the service quota limit.</p>
1075
+ capo_devops_agent.errors.throttling_exception.ThrottlingException: <p>The request was throttled due to too many requests. Please slow down and try again.</p>
1076
+ capo_devops_agent.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service.</p>
1077
+ capo_devops_agent.errors.UnknownServiceError: The service returned an error code this client does not model.
1078
+ """
1079
+
1080
+ def _handler(
1081
+ req: "OperationRequest[capo_devops_agent.types.list_assets_request.ListAssetsRequest]",
1082
+ ) -> OperationResponse[
1083
+ "capo_devops_agent.types.list_assets_response.ListAssetsResponse"
1084
+ ]:
1085
+ import capo_devops_agent._operations.dev_ops_agent.list_assets
1086
+
1087
+ output, http_response = (
1088
+ capo_devops_agent._operations.dev_ops_agent.list_assets.list_assets(
1089
+ req.options, req.input
1090
+ )
1091
+ )
1092
+ return OperationResponse(output=output, response=http_response)
1093
+
1094
+ interceptors_, options_ = self.operation_options(config_overrides)
1095
+ input_: capo_devops_agent.types.list_assets_request.ListAssetsRequest = {
1096
+ "agent_space_id": agent_space_id
1097
+ }
1098
+ if asset_type is not None:
1099
+ input_["asset_type"] = asset_type
1100
+ if updated_after is not None:
1101
+ input_["updated_after"] = updated_after
1102
+ if updated_before is not None:
1103
+ input_["updated_before"] = updated_before
1104
+ if next_token is not None:
1105
+ input_["next_token"] = next_token
1106
+ if max_results is not None:
1107
+ input_["max_results"] = max_results
1108
+
1109
+ response = execute_pipeline(
1110
+ OperationRequest(input=input_, options=options_),
1111
+ handler=_handler,
1112
+ interceptors=list(interceptors_),
1113
+ )
1114
+ response.response.close()
1115
+ return response.output
1116
+
1117
+ def iter_list_assets(
1118
+ self,
1119
+ agent_space_id: "capo_devops_agent.types.agent_space_id.AgentSpaceId",
1120
+ *,
1121
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
1122
+ asset_type: Optional["capo_devops_agent.types.asset_type.AssetType"] = None,
1123
+ updated_after: Optional[datetime.datetime] = None,
1124
+ updated_before: Optional[datetime.datetime] = None,
1125
+ next_token: Optional["capo_devops_agent.types.next_token.NextToken"] = None,
1126
+ max_results: Optional[int] = None,
1127
+ ) -> "Iterator[capo_devops_agent.types.asset.Asset]":
1128
+ _token = next_token
1129
+ while True:
1130
+ _response = self.list_assets(
1131
+ agent_space_id,
1132
+ config_overrides=config_overrides,
1133
+ asset_type=asset_type,
1134
+ updated_after=updated_after,
1135
+ updated_before=updated_before,
1136
+ next_token=_token,
1137
+ max_results=max_results,
1138
+ )
1139
+ _page = _resolve_path(_response, ("items",))
1140
+ for _item in _page or []:
1141
+ yield _item
1142
+ _token = _resolve_path(_response, ("next_token",))
1143
+ if not _token:
1144
+ break
1145
+
1146
+ def list_asset_types(
1147
+ self,
1148
+ *,
1149
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
1150
+ next_token: Optional["capo_devops_agent.types.next_token.NextToken"] = None,
1151
+ max_results: Optional[int] = None,
1152
+ ) -> "capo_devops_agent.types.list_asset_types_response.ListAssetTypesResponse":
1153
+ """<p>Lists the supported asset types</p>
1154
+
1155
+ Args:
1156
+ next_token: <p>Pagination token from a previous response to retrieve the next page of results</p>
1157
+ max_results: <p>The maximum number of results to return in a single response</p>
1158
+
1159
+ Raises:
1160
+ capo_devops_agent.errors.access_denied_exception.AccessDeniedException: <p>Access to the requested resource is denied due to insufficient permissions.</p>
1161
+ capo_devops_agent.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource.</p>
1162
+ capo_devops_agent.errors.content_size_exceeded_exception.ContentSizeExceededException: <p>This exception is thrown when the content size exceeds the allowed limit.</p>
1163
+ capo_devops_agent.errors.internal_server_exception.InternalServerException: <p>This exception is thrown when an unexpected error occurs in the processing of a request.</p>
1164
+ capo_devops_agent.errors.invalid_parameter_exception.InvalidParameterException: <p>One or more parameters provided in the request are invalid.</p>
1165
+ capo_devops_agent.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource could not be found.</p>
1166
+ capo_devops_agent.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would exceed the service quota limit.</p>
1167
+ capo_devops_agent.errors.throttling_exception.ThrottlingException: <p>The request was throttled due to too many requests. Please slow down and try again.</p>
1168
+ capo_devops_agent.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service.</p>
1169
+ capo_devops_agent.errors.UnknownServiceError: The service returned an error code this client does not model.
1170
+ """
1171
+
1172
+ def _handler(
1173
+ req: "OperationRequest[capo_devops_agent.types.list_asset_types_request.ListAssetTypesRequest]",
1174
+ ) -> OperationResponse[
1175
+ "capo_devops_agent.types.list_asset_types_response.ListAssetTypesResponse"
1176
+ ]:
1177
+ import capo_devops_agent._operations.dev_ops_agent.list_asset_types
1178
+
1179
+ output, http_response = (
1180
+ capo_devops_agent._operations.dev_ops_agent.list_asset_types.list_asset_types(
1181
+ req.options, req.input
1182
+ )
1183
+ )
1184
+ return OperationResponse(output=output, response=http_response)
1185
+
1186
+ interceptors_, options_ = self.operation_options(config_overrides)
1187
+ input_: capo_devops_agent.types.list_asset_types_request.ListAssetTypesRequest = {}
1188
+ if next_token is not None:
1189
+ input_["next_token"] = next_token
1190
+ if max_results is not None:
1191
+ input_["max_results"] = max_results
1192
+
1193
+ response = execute_pipeline(
1194
+ OperationRequest(input=input_, options=options_),
1195
+ handler=_handler,
1196
+ interceptors=list(interceptors_),
1197
+ )
1198
+ response.response.close()
1199
+ return response.output
1200
+
1201
+ def iter_list_asset_types(
1202
+ self,
1203
+ *,
1204
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
1205
+ next_token: Optional["capo_devops_agent.types.next_token.NextToken"] = None,
1206
+ max_results: Optional[int] = None,
1207
+ ) -> "Iterator[capo_devops_agent.types.asset_type_summary.AssetTypeSummary]":
1208
+ _token = next_token
1209
+ while True:
1210
+ _response = self.list_asset_types(
1211
+ config_overrides=config_overrides,
1212
+ next_token=_token,
1213
+ max_results=max_results,
1214
+ )
1215
+ _page = _resolve_path(_response, ("items",))
1216
+ for _item in _page or []:
1217
+ yield _item
1218
+ _token = _resolve_path(_response, ("next_token",))
1219
+ if not _token:
1220
+ break
1221
+
1222
+ def list_asset_versions(
1223
+ self,
1224
+ agent_space_id: "capo_devops_agent.types.agent_space_id.AgentSpaceId",
1225
+ asset_id: "capo_devops_agent.types.resource_id.ResourceId",
1226
+ *,
1227
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
1228
+ max_results: Optional[int] = None,
1229
+ next_token: Optional["capo_devops_agent.types.next_token.NextToken"] = None,
1230
+ ) -> (
1231
+ "capo_devops_agent.types.list_asset_versions_response.ListAssetVersionsResponse"
1232
+ ):
1233
+ """<p>Lists versions of an asset in the specified agent space</p>
1234
+
1235
+ Args:
1236
+ agent_space_id: <p>The unique identifier for the agent space containing the asset</p>
1237
+ asset_id: <p>The unique identifier of the asset whose versions to list</p>
1238
+ max_results: <p>The maximum number of results to return in a single response</p>
1239
+ next_token: <p>Pagination token from a previous response to retrieve the next page of results</p>
1240
+
1241
+ Raises:
1242
+ capo_devops_agent.errors.access_denied_exception.AccessDeniedException: <p>Access to the requested resource is denied due to insufficient permissions.</p>
1243
+ capo_devops_agent.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource.</p>
1244
+ capo_devops_agent.errors.content_size_exceeded_exception.ContentSizeExceededException: <p>This exception is thrown when the content size exceeds the allowed limit.</p>
1245
+ capo_devops_agent.errors.internal_server_exception.InternalServerException: <p>This exception is thrown when an unexpected error occurs in the processing of a request.</p>
1246
+ capo_devops_agent.errors.invalid_parameter_exception.InvalidParameterException: <p>One or more parameters provided in the request are invalid.</p>
1247
+ capo_devops_agent.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource could not be found.</p>
1248
+ capo_devops_agent.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would exceed the service quota limit.</p>
1249
+ capo_devops_agent.errors.throttling_exception.ThrottlingException: <p>The request was throttled due to too many requests. Please slow down and try again.</p>
1250
+ capo_devops_agent.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service.</p>
1251
+ capo_devops_agent.errors.UnknownServiceError: The service returned an error code this client does not model.
1252
+ """
1253
+
1254
+ def _handler(
1255
+ req: "OperationRequest[capo_devops_agent.types.list_asset_versions_request.ListAssetVersionsRequest]",
1256
+ ) -> OperationResponse[
1257
+ "capo_devops_agent.types.list_asset_versions_response.ListAssetVersionsResponse"
1258
+ ]:
1259
+ import capo_devops_agent._operations.dev_ops_agent.list_asset_versions
1260
+
1261
+ output, http_response = (
1262
+ capo_devops_agent._operations.dev_ops_agent.list_asset_versions.list_asset_versions(
1263
+ req.options, req.input
1264
+ )
1265
+ )
1266
+ return OperationResponse(output=output, response=http_response)
1267
+
1268
+ interceptors_, options_ = self.operation_options(config_overrides)
1269
+ input_: capo_devops_agent.types.list_asset_versions_request.ListAssetVersionsRequest = {
1270
+ "agent_space_id": agent_space_id,
1271
+ "asset_id": asset_id,
1272
+ }
1273
+ if max_results is not None:
1274
+ input_["max_results"] = max_results
1275
+ if next_token is not None:
1276
+ input_["next_token"] = next_token
1277
+
1278
+ response = execute_pipeline(
1279
+ OperationRequest(input=input_, options=options_),
1280
+ handler=_handler,
1281
+ interceptors=list(interceptors_),
1282
+ )
1283
+ response.response.close()
1284
+ return response.output
1285
+
1286
+ def iter_list_asset_versions(
1287
+ self,
1288
+ agent_space_id: "capo_devops_agent.types.agent_space_id.AgentSpaceId",
1289
+ asset_id: "capo_devops_agent.types.resource_id.ResourceId",
1290
+ *,
1291
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
1292
+ max_results: Optional[int] = None,
1293
+ next_token: Optional["capo_devops_agent.types.next_token.NextToken"] = None,
1294
+ ) -> (
1295
+ "Iterator[capo_devops_agent.types.asset_version_metadata.AssetVersionMetadata]"
1296
+ ):
1297
+ _token = next_token
1298
+ while True:
1299
+ _response = self.list_asset_versions(
1300
+ agent_space_id,
1301
+ asset_id,
1302
+ config_overrides=config_overrides,
1303
+ max_results=max_results,
1304
+ next_token=_token,
1305
+ )
1306
+ _page = _resolve_path(_response, ("items",))
1307
+ for _item in _page or []:
1308
+ yield _item
1309
+ _token = _resolve_path(_response, ("next_token",))
1310
+ if not _token:
1311
+ break
1312
+
1313
+ def list_backlog_tasks(
1314
+ self,
1315
+ agent_space_id: "capo_devops_agent.types.agent_space_id.AgentSpaceId",
1316
+ *,
1317
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
1318
+ filter: Optional["capo_devops_agent.types.task_filter.TaskFilter"] = None,
1319
+ limit: Optional[int] = None,
1320
+ next_token: Optional["capo_devops_agent.types.next_token.NextToken"] = None,
1321
+ sort_field: Optional[
1322
+ "capo_devops_agent.types.task_sort_field.TaskSortField"
1323
+ ] = None,
1324
+ order: Optional["capo_devops_agent.types.task_sort_order.TaskSortOrder"] = None,
1325
+ ) -> "capo_devops_agent.types.list_backlog_tasks_response.ListBacklogTasksResponse":
1326
+ """<p>Lists backlog tasks in the specified agent space with optional filtering and sorting</p>
1327
+
1328
+ Args:
1329
+ agent_space_id: <p>The unique identifier for the agent space containing the tasks</p>
1330
+ filter: <p>Filter criteria to apply when listing tasks Filtering restrictions: - Each filter field list is limited to a single value - Filtering by Priority and Status at the same time when not filtering by Type is not permitted - Timestamp filters (createdAfter, createdBefore) can be combined with other filters when not sorting by priority</p>
1331
+ limit: <p>Maximum number of tasks to return in a single response (1-1000, default: 100)</p>
1332
+ next_token: <p>Token for retrieving the next page of results</p>
1333
+ sort_field: <p>Field to sort by Sorting restrictions: - Only sorting on createdAt is supported when using priority or status filters alone. - Sorting by priority is not supported when using Timestamp filters (createdAfter, createdBefore)</p>
1334
+ order: <p>Sort order for the tasks based on sortField (default: DESC)</p>
1335
+
1336
+ Raises:
1337
+ capo_devops_agent.errors.access_denied_exception.AccessDeniedException: <p>Access to the requested resource is denied due to insufficient permissions.</p>
1338
+ capo_devops_agent.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource.</p>
1339
+ capo_devops_agent.errors.content_size_exceeded_exception.ContentSizeExceededException: <p>This exception is thrown when the content size exceeds the allowed limit.</p>
1340
+ capo_devops_agent.errors.internal_server_exception.InternalServerException: <p>This exception is thrown when an unexpected error occurs in the processing of a request.</p>
1341
+ capo_devops_agent.errors.invalid_parameter_exception.InvalidParameterException: <p>One or more parameters provided in the request are invalid.</p>
1342
+ capo_devops_agent.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource could not be found.</p>
1343
+ capo_devops_agent.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would exceed the service quota limit.</p>
1344
+ capo_devops_agent.errors.throttling_exception.ThrottlingException: <p>The request was throttled due to too many requests. Please slow down and try again.</p>
1345
+ capo_devops_agent.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service.</p>
1346
+ capo_devops_agent.errors.UnknownServiceError: The service returned an error code this client does not model.
1347
+ """
1348
+
1349
+ def _handler(
1350
+ req: "OperationRequest[capo_devops_agent.types.list_backlog_tasks_request.ListBacklogTasksRequest]",
1351
+ ) -> OperationResponse[
1352
+ "capo_devops_agent.types.list_backlog_tasks_response.ListBacklogTasksResponse"
1353
+ ]:
1354
+ import capo_devops_agent._operations.dev_ops_agent.list_backlog_tasks
1355
+
1356
+ output, http_response = (
1357
+ capo_devops_agent._operations.dev_ops_agent.list_backlog_tasks.list_backlog_tasks(
1358
+ req.options, req.input
1359
+ )
1360
+ )
1361
+ return OperationResponse(output=output, response=http_response)
1362
+
1363
+ interceptors_, options_ = self.operation_options(config_overrides)
1364
+ input_: capo_devops_agent.types.list_backlog_tasks_request.ListBacklogTasksRequest = {
1365
+ "agent_space_id": agent_space_id
1366
+ }
1367
+ if filter is not None:
1368
+ input_["filter"] = filter
1369
+ if limit is not None:
1370
+ input_["limit"] = limit
1371
+ if next_token is not None:
1372
+ input_["next_token"] = next_token
1373
+ if sort_field is not None:
1374
+ input_["sort_field"] = sort_field
1375
+ if order is not None:
1376
+ input_["order"] = order
1377
+
1378
+ response = execute_pipeline(
1379
+ OperationRequest(input=input_, options=options_),
1380
+ handler=_handler,
1381
+ interceptors=list(interceptors_),
1382
+ )
1383
+ response.response.close()
1384
+ return response.output
1385
+
1386
+ def iter_list_backlog_tasks(
1387
+ self,
1388
+ agent_space_id: "capo_devops_agent.types.agent_space_id.AgentSpaceId",
1389
+ *,
1390
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
1391
+ filter: Optional["capo_devops_agent.types.task_filter.TaskFilter"] = None,
1392
+ limit: Optional[int] = None,
1393
+ next_token: Optional["capo_devops_agent.types.next_token.NextToken"] = None,
1394
+ sort_field: Optional[
1395
+ "capo_devops_agent.types.task_sort_field.TaskSortField"
1396
+ ] = None,
1397
+ order: Optional["capo_devops_agent.types.task_sort_order.TaskSortOrder"] = None,
1398
+ ) -> "Iterator[capo_devops_agent.types.task.Task]":
1399
+ _token = next_token
1400
+ while True:
1401
+ _response = self.list_backlog_tasks(
1402
+ agent_space_id,
1403
+ config_overrides=config_overrides,
1404
+ filter=filter,
1405
+ limit=limit,
1406
+ next_token=_token,
1407
+ sort_field=sort_field,
1408
+ order=order,
1409
+ )
1410
+ _page = _resolve_path(_response, ("tasks",))
1411
+ for _item in _page or []:
1412
+ yield _item
1413
+ _token = _resolve_path(_response, ("next_token",))
1414
+ if not _token:
1415
+ break
1416
+
1417
+ def list_chats(
1418
+ self,
1419
+ agent_space_id: "capo_devops_agent.types.agent_space_id.AgentSpaceId",
1420
+ *,
1421
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
1422
+ user_id: Optional["capo_devops_agent.types.resource_id.ResourceId"] = None,
1423
+ max_results: Optional[int] = None,
1424
+ next_token: Optional[str] = None,
1425
+ ) -> "capo_devops_agent.types.list_chats_response.ListChatsResponse":
1426
+ """<p>Retrieves a paginated list of the user's recent chat executions</p>
1427
+
1428
+ Args:
1429
+ user_id: <p>The user identifier to list chats for. This field is deprecated and will be ignored — the service resolves user identity from the authenticated session.</p>
1430
+ max_results: <p>Maximum number of results to return</p>
1431
+ next_token: <p>Token for pagination</p>
1432
+
1433
+ Raises:
1434
+ capo_devops_agent.errors.access_denied_exception.AccessDeniedException: <p>Access to the requested resource is denied due to insufficient permissions.</p>
1435
+ capo_devops_agent.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource.</p>
1436
+ capo_devops_agent.errors.content_size_exceeded_exception.ContentSizeExceededException: <p>This exception is thrown when the content size exceeds the allowed limit.</p>
1437
+ capo_devops_agent.errors.internal_server_exception.InternalServerException: <p>This exception is thrown when an unexpected error occurs in the processing of a request.</p>
1438
+ capo_devops_agent.errors.invalid_parameter_exception.InvalidParameterException: <p>One or more parameters provided in the request are invalid.</p>
1439
+ capo_devops_agent.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource could not be found.</p>
1440
+ capo_devops_agent.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would exceed the service quota limit.</p>
1441
+ capo_devops_agent.errors.throttling_exception.ThrottlingException: <p>The request was throttled due to too many requests. Please slow down and try again.</p>
1442
+ capo_devops_agent.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service.</p>
1443
+ capo_devops_agent.errors.UnknownServiceError: The service returned an error code this client does not model.
1444
+ """
1445
+
1446
+ def _handler(
1447
+ req: "OperationRequest[capo_devops_agent.types.list_chats_request.ListChatsRequest]",
1448
+ ) -> OperationResponse[
1449
+ "capo_devops_agent.types.list_chats_response.ListChatsResponse"
1450
+ ]:
1451
+ import capo_devops_agent._operations.dev_ops_agent.list_chats
1452
+
1453
+ output, http_response = (
1454
+ capo_devops_agent._operations.dev_ops_agent.list_chats.list_chats(
1455
+ req.options, req.input
1456
+ )
1457
+ )
1458
+ return OperationResponse(output=output, response=http_response)
1459
+
1460
+ interceptors_, options_ = self.operation_options(config_overrides)
1461
+ input_: capo_devops_agent.types.list_chats_request.ListChatsRequest = {
1462
+ "agent_space_id": agent_space_id
1463
+ }
1464
+ if user_id is not None:
1465
+ input_["user_id"] = user_id
1466
+ if max_results is not None:
1467
+ input_["max_results"] = max_results
1468
+ if next_token is not None:
1469
+ input_["next_token"] = next_token
1470
+
1471
+ response = execute_pipeline(
1472
+ OperationRequest(input=input_, options=options_),
1473
+ handler=_handler,
1474
+ interceptors=list(interceptors_),
1475
+ )
1476
+ response.response.close()
1477
+ return response.output
1478
+
1479
+ def list_executions(
1480
+ self,
1481
+ agent_space_id: "capo_devops_agent.types.agent_space_id.AgentSpaceId",
1482
+ task_id: "capo_devops_agent.types.resource_id.ResourceId",
1483
+ *,
1484
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
1485
+ limit: Optional[int] = None,
1486
+ next_token: Optional["capo_devops_agent.types.next_token.NextToken"] = None,
1487
+ ) -> "capo_devops_agent.types.list_executions_response.ListExecutionsResponse":
1488
+ """<p>List executions</p>
1489
+
1490
+ Args:
1491
+ agent_space_id: <p>The unique identifier for the agent space</p>
1492
+ task_id: <p>The unique identifier of the task whose executions to retrieve</p>
1493
+ limit: <p>Maximum number of executions to return</p>
1494
+ next_token: <p>Token for pagination to retrieve the next set of results</p>
1495
+
1496
+ Raises:
1497
+ capo_devops_agent.errors.access_denied_exception.AccessDeniedException: <p>Access to the requested resource is denied due to insufficient permissions.</p>
1498
+ capo_devops_agent.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource.</p>
1499
+ capo_devops_agent.errors.content_size_exceeded_exception.ContentSizeExceededException: <p>This exception is thrown when the content size exceeds the allowed limit.</p>
1500
+ capo_devops_agent.errors.internal_server_exception.InternalServerException: <p>This exception is thrown when an unexpected error occurs in the processing of a request.</p>
1501
+ capo_devops_agent.errors.invalid_parameter_exception.InvalidParameterException: <p>One or more parameters provided in the request are invalid.</p>
1502
+ capo_devops_agent.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource could not be found.</p>
1503
+ capo_devops_agent.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would exceed the service quota limit.</p>
1504
+ capo_devops_agent.errors.throttling_exception.ThrottlingException: <p>The request was throttled due to too many requests. Please slow down and try again.</p>
1505
+ capo_devops_agent.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service.</p>
1506
+ capo_devops_agent.errors.UnknownServiceError: The service returned an error code this client does not model.
1507
+ """
1508
+
1509
+ def _handler(
1510
+ req: "OperationRequest[capo_devops_agent.types.list_executions_request.ListExecutionsRequest]",
1511
+ ) -> OperationResponse[
1512
+ "capo_devops_agent.types.list_executions_response.ListExecutionsResponse"
1513
+ ]:
1514
+ import capo_devops_agent._operations.dev_ops_agent.list_executions
1515
+
1516
+ output, http_response = (
1517
+ capo_devops_agent._operations.dev_ops_agent.list_executions.list_executions(
1518
+ req.options, req.input
1519
+ )
1520
+ )
1521
+ return OperationResponse(output=output, response=http_response)
1522
+
1523
+ interceptors_, options_ = self.operation_options(config_overrides)
1524
+ input_: capo_devops_agent.types.list_executions_request.ListExecutionsRequest = {
1525
+ "agent_space_id": agent_space_id,
1526
+ "task_id": task_id,
1527
+ }
1528
+ if limit is not None:
1529
+ input_["limit"] = limit
1530
+ if next_token is not None:
1531
+ input_["next_token"] = next_token
1532
+
1533
+ response = execute_pipeline(
1534
+ OperationRequest(input=input_, options=options_),
1535
+ handler=_handler,
1536
+ interceptors=list(interceptors_),
1537
+ )
1538
+ response.response.close()
1539
+ return response.output
1540
+
1541
+ def iter_list_executions(
1542
+ self,
1543
+ agent_space_id: "capo_devops_agent.types.agent_space_id.AgentSpaceId",
1544
+ task_id: "capo_devops_agent.types.resource_id.ResourceId",
1545
+ *,
1546
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
1547
+ limit: Optional[int] = None,
1548
+ next_token: Optional["capo_devops_agent.types.next_token.NextToken"] = None,
1549
+ ) -> "Iterator[capo_devops_agent.types.execution.Execution]":
1550
+ _token = next_token
1551
+ while True:
1552
+ _response = self.list_executions(
1553
+ agent_space_id,
1554
+ task_id,
1555
+ config_overrides=config_overrides,
1556
+ limit=limit,
1557
+ next_token=_token,
1558
+ )
1559
+ _page = _resolve_path(_response, ("executions",))
1560
+ for _item in _page or []:
1561
+ yield _item
1562
+ _token = _resolve_path(_response, ("next_token",))
1563
+ if not _token:
1564
+ break
1565
+
1566
+ def list_goals(
1567
+ self,
1568
+ agent_space_id: "capo_devops_agent.types.agent_space_id.AgentSpaceId",
1569
+ *,
1570
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
1571
+ status: Optional["capo_devops_agent.types.goal_status.GoalStatus"] = None,
1572
+ goal_type: Optional["capo_devops_agent.types.goal_type.GoalType"] = None,
1573
+ limit: Optional[int] = None,
1574
+ next_token: Optional["capo_devops_agent.types.next_token.NextToken"] = None,
1575
+ ) -> "capo_devops_agent.types.list_goals_response.ListGoalsResponse":
1576
+ """<p>Lists goals in the specified agent space with optional filtering</p>
1577
+
1578
+ Args:
1579
+ agent_space_id: <p>The unique identifier for the agent space</p>
1580
+ status: <p>Filter goals by goal status</p>
1581
+ goal_type: <p>Filter goals by goal type</p>
1582
+ limit: <p>Maximum number of goals to return</p>
1583
+ next_token: <p>Pagination token for the next set of results</p>
1584
+
1585
+ Raises:
1586
+ capo_devops_agent.errors.access_denied_exception.AccessDeniedException: <p>Access to the requested resource is denied due to insufficient permissions.</p>
1587
+ capo_devops_agent.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource.</p>
1588
+ capo_devops_agent.errors.content_size_exceeded_exception.ContentSizeExceededException: <p>This exception is thrown when the content size exceeds the allowed limit.</p>
1589
+ capo_devops_agent.errors.internal_server_exception.InternalServerException: <p>This exception is thrown when an unexpected error occurs in the processing of a request.</p>
1590
+ capo_devops_agent.errors.invalid_parameter_exception.InvalidParameterException: <p>One or more parameters provided in the request are invalid.</p>
1591
+ capo_devops_agent.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource could not be found.</p>
1592
+ capo_devops_agent.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would exceed the service quota limit.</p>
1593
+ capo_devops_agent.errors.throttling_exception.ThrottlingException: <p>The request was throttled due to too many requests. Please slow down and try again.</p>
1594
+ capo_devops_agent.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service.</p>
1595
+ capo_devops_agent.errors.UnknownServiceError: The service returned an error code this client does not model.
1596
+ """
1597
+
1598
+ def _handler(
1599
+ req: "OperationRequest[capo_devops_agent.types.list_goals_request.ListGoalsRequest]",
1600
+ ) -> OperationResponse[
1601
+ "capo_devops_agent.types.list_goals_response.ListGoalsResponse"
1602
+ ]:
1603
+ import capo_devops_agent._operations.dev_ops_agent.list_goals
1604
+
1605
+ output, http_response = (
1606
+ capo_devops_agent._operations.dev_ops_agent.list_goals.list_goals(
1607
+ req.options, req.input
1608
+ )
1609
+ )
1610
+ return OperationResponse(output=output, response=http_response)
1611
+
1612
+ interceptors_, options_ = self.operation_options(config_overrides)
1613
+ input_: capo_devops_agent.types.list_goals_request.ListGoalsRequest = {
1614
+ "agent_space_id": agent_space_id
1615
+ }
1616
+ if status is not None:
1617
+ input_["status"] = status
1618
+ if goal_type is not None:
1619
+ input_["goal_type"] = goal_type
1620
+ if limit is not None:
1621
+ input_["limit"] = limit
1622
+ if next_token is not None:
1623
+ input_["next_token"] = next_token
1624
+
1625
+ response = execute_pipeline(
1626
+ OperationRequest(input=input_, options=options_),
1627
+ handler=_handler,
1628
+ interceptors=list(interceptors_),
1629
+ )
1630
+ response.response.close()
1631
+ return response.output
1632
+
1633
+ def iter_list_goals(
1634
+ self,
1635
+ agent_space_id: "capo_devops_agent.types.agent_space_id.AgentSpaceId",
1636
+ *,
1637
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
1638
+ status: Optional["capo_devops_agent.types.goal_status.GoalStatus"] = None,
1639
+ goal_type: Optional["capo_devops_agent.types.goal_type.GoalType"] = None,
1640
+ limit: Optional[int] = None,
1641
+ next_token: Optional["capo_devops_agent.types.next_token.NextToken"] = None,
1642
+ ) -> "Iterator[capo_devops_agent.types.goal.Goal]":
1643
+ _token = next_token
1644
+ while True:
1645
+ _response = self.list_goals(
1646
+ agent_space_id,
1647
+ config_overrides=config_overrides,
1648
+ status=status,
1649
+ goal_type=goal_type,
1650
+ limit=limit,
1651
+ next_token=_token,
1652
+ )
1653
+ _page = _resolve_path(_response, ("goals",))
1654
+ for _item in _page or []:
1655
+ yield _item
1656
+ _token = _resolve_path(_response, ("next_token",))
1657
+ if not _token:
1658
+ break
1659
+
1660
+ def list_journal_records(
1661
+ self,
1662
+ agent_space_id: "capo_devops_agent.types.agent_space_id.AgentSpaceId",
1663
+ execution_id: "capo_devops_agent.types.resource_id.ResourceId",
1664
+ *,
1665
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
1666
+ limit: Optional[int] = None,
1667
+ next_token: Optional["capo_devops_agent.types.next_token.NextToken"] = None,
1668
+ record_type: Optional[str] = None,
1669
+ order: Optional["capo_devops_agent.types.order_type.OrderType"] = None,
1670
+ ) -> "capo_devops_agent.types.list_journal_records_response.ListJournalRecordsResponse":
1671
+ """<p>List journal records for a specific execution</p>
1672
+
1673
+ Args:
1674
+ agent_space_id: <p>The unique identifier for the agent space containing the execution</p>
1675
+ execution_id: <p>The unique identifier of the execution whose journal records to retrieve</p>
1676
+ limit: <p>Maximum number of records to return in a single response (1-100, default: 100)</p>
1677
+ next_token: <p>Token for retrieving the next page of results</p>
1678
+ record_type: <p>Filter records by type (empty string returns all types)</p>
1679
+ order: <p>Sort order for the records based on timestamp (default: DESC)</p>
1680
+
1681
+ Raises:
1682
+ capo_devops_agent.errors.access_denied_exception.AccessDeniedException: <p>Access to the requested resource is denied due to insufficient permissions.</p>
1683
+ capo_devops_agent.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource.</p>
1684
+ capo_devops_agent.errors.content_size_exceeded_exception.ContentSizeExceededException: <p>This exception is thrown when the content size exceeds the allowed limit.</p>
1685
+ capo_devops_agent.errors.internal_server_exception.InternalServerException: <p>This exception is thrown when an unexpected error occurs in the processing of a request.</p>
1686
+ capo_devops_agent.errors.invalid_parameter_exception.InvalidParameterException: <p>One or more parameters provided in the request are invalid.</p>
1687
+ capo_devops_agent.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource could not be found.</p>
1688
+ capo_devops_agent.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would exceed the service quota limit.</p>
1689
+ capo_devops_agent.errors.throttling_exception.ThrottlingException: <p>The request was throttled due to too many requests. Please slow down and try again.</p>
1690
+ capo_devops_agent.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service.</p>
1691
+ capo_devops_agent.errors.UnknownServiceError: The service returned an error code this client does not model.
1692
+ """
1693
+
1694
+ def _handler(
1695
+ req: "OperationRequest[capo_devops_agent.types.list_journal_records_request.ListJournalRecordsRequest]",
1696
+ ) -> OperationResponse[
1697
+ "capo_devops_agent.types.list_journal_records_response.ListJournalRecordsResponse"
1698
+ ]:
1699
+ import capo_devops_agent._operations.dev_ops_agent.list_journal_records
1700
+
1701
+ output, http_response = (
1702
+ capo_devops_agent._operations.dev_ops_agent.list_journal_records.list_journal_records(
1703
+ req.options, req.input
1704
+ )
1705
+ )
1706
+ return OperationResponse(output=output, response=http_response)
1707
+
1708
+ interceptors_, options_ = self.operation_options(config_overrides)
1709
+ input_: capo_devops_agent.types.list_journal_records_request.ListJournalRecordsRequest = {
1710
+ "agent_space_id": agent_space_id,
1711
+ "execution_id": execution_id,
1712
+ }
1713
+ if limit is not None:
1714
+ input_["limit"] = limit
1715
+ if next_token is not None:
1716
+ input_["next_token"] = next_token
1717
+ if record_type is not None:
1718
+ input_["record_type"] = record_type
1719
+ if order is not None:
1720
+ input_["order"] = order
1721
+
1722
+ response = execute_pipeline(
1723
+ OperationRequest(input=input_, options=options_),
1724
+ handler=_handler,
1725
+ interceptors=list(interceptors_),
1726
+ )
1727
+ response.response.close()
1728
+ return response.output
1729
+
1730
+ def iter_list_journal_records(
1731
+ self,
1732
+ agent_space_id: "capo_devops_agent.types.agent_space_id.AgentSpaceId",
1733
+ execution_id: "capo_devops_agent.types.resource_id.ResourceId",
1734
+ *,
1735
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
1736
+ limit: Optional[int] = None,
1737
+ next_token: Optional["capo_devops_agent.types.next_token.NextToken"] = None,
1738
+ record_type: Optional[str] = None,
1739
+ order: Optional["capo_devops_agent.types.order_type.OrderType"] = None,
1740
+ ) -> "Iterator[capo_devops_agent.types.journal_record.JournalRecord]":
1741
+ _token = next_token
1742
+ while True:
1743
+ _response = self.list_journal_records(
1744
+ agent_space_id,
1745
+ execution_id,
1746
+ config_overrides=config_overrides,
1747
+ limit=limit,
1748
+ next_token=_token,
1749
+ record_type=record_type,
1750
+ order=order,
1751
+ )
1752
+ _page = _resolve_path(_response, ("records",))
1753
+ for _item in _page or []:
1754
+ yield _item
1755
+ _token = _resolve_path(_response, ("next_token",))
1756
+ if not _token:
1757
+ break
1758
+
1759
+ def list_pending_messages(
1760
+ self,
1761
+ agent_space_id: "capo_devops_agent.types.agent_space_id.AgentSpaceId",
1762
+ execution_id: "capo_devops_agent.types.resource_id.ResourceId",
1763
+ *,
1764
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
1765
+ ) -> "capo_devops_agent.types.list_pending_messages_response.ListPendingMessagesResponse":
1766
+ """<p>List pending messages for a specific execution.</p>
1767
+
1768
+ Args:
1769
+ execution_id: <p>The unique identifier of the execution whose journal records to retrieve</p>
1770
+
1771
+ Raises:
1772
+ capo_devops_agent.errors.access_denied_exception.AccessDeniedException: <p>Access to the requested resource is denied due to insufficient permissions.</p>
1773
+ capo_devops_agent.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource.</p>
1774
+ capo_devops_agent.errors.content_size_exceeded_exception.ContentSizeExceededException: <p>This exception is thrown when the content size exceeds the allowed limit.</p>
1775
+ capo_devops_agent.errors.internal_server_exception.InternalServerException: <p>This exception is thrown when an unexpected error occurs in the processing of a request.</p>
1776
+ capo_devops_agent.errors.invalid_parameter_exception.InvalidParameterException: <p>One or more parameters provided in the request are invalid.</p>
1777
+ capo_devops_agent.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource could not be found.</p>
1778
+ capo_devops_agent.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would exceed the service quota limit.</p>
1779
+ capo_devops_agent.errors.throttling_exception.ThrottlingException: <p>The request was throttled due to too many requests. Please slow down and try again.</p>
1780
+ capo_devops_agent.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service.</p>
1781
+ capo_devops_agent.errors.UnknownServiceError: The service returned an error code this client does not model.
1782
+ """
1783
+
1784
+ def _handler(
1785
+ req: "OperationRequest[capo_devops_agent.types.list_pending_messages_request.ListPendingMessagesRequest]",
1786
+ ) -> OperationResponse[
1787
+ "capo_devops_agent.types.list_pending_messages_response.ListPendingMessagesResponse"
1788
+ ]:
1789
+ import capo_devops_agent._operations.dev_ops_agent.list_pending_messages
1790
+
1791
+ output, http_response = (
1792
+ capo_devops_agent._operations.dev_ops_agent.list_pending_messages.list_pending_messages(
1793
+ req.options, req.input
1794
+ )
1795
+ )
1796
+ return OperationResponse(output=output, response=http_response)
1797
+
1798
+ interceptors_, options_ = self.operation_options(config_overrides)
1799
+ input_: capo_devops_agent.types.list_pending_messages_request.ListPendingMessagesRequest = {
1800
+ "agent_space_id": agent_space_id,
1801
+ "execution_id": execution_id,
1802
+ }
1803
+
1804
+ response = execute_pipeline(
1805
+ OperationRequest(input=input_, options=options_),
1806
+ handler=_handler,
1807
+ interceptors=list(interceptors_),
1808
+ )
1809
+ response.response.close()
1810
+ return response.output
1811
+
1812
+ def list_recommendations(
1813
+ self,
1814
+ agent_space_id: "capo_devops_agent.types.agent_space_id.AgentSpaceId",
1815
+ *,
1816
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
1817
+ task_id: Optional["capo_devops_agent.types.resource_id.ResourceId"] = None,
1818
+ goal_id: Optional["capo_devops_agent.types.resource_id.ResourceId"] = None,
1819
+ status: Optional[
1820
+ "capo_devops_agent.types.recommendation_status.RecommendationStatus"
1821
+ ] = None,
1822
+ priority: Optional[
1823
+ "capo_devops_agent.types.recommendation_priority.RecommendationPriority"
1824
+ ] = None,
1825
+ limit: Optional[int] = None,
1826
+ next_token: Optional["capo_devops_agent.types.next_token.NextToken"] = None,
1827
+ ) -> "capo_devops_agent.types.list_recommendations_response.ListRecommendationsResponse":
1828
+ """<p>Lists recommendations for the specified agent space</p>
1829
+
1830
+ Args:
1831
+ agent_space_id: <p>The unique identifier for the agent space containing the recommendations</p>
1832
+ task_id: <p>Optional task ID to filter recommendations by specific task</p>
1833
+ goal_id: <p>Optional goal ID to filter recommendations by specific goal</p>
1834
+ status: <p>Optional status to filter recommendations by their current status</p>
1835
+ priority: <p>Optional priority to filter recommendations by priority level</p>
1836
+ limit: <p>Maximum number of recommendations to return in a single response</p>
1837
+ next_token: <p>Token for retrieving the next page of results</p>
1838
+
1839
+ Raises:
1840
+ capo_devops_agent.errors.access_denied_exception.AccessDeniedException: <p>Access to the requested resource is denied due to insufficient permissions.</p>
1841
+ capo_devops_agent.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource.</p>
1842
+ capo_devops_agent.errors.content_size_exceeded_exception.ContentSizeExceededException: <p>This exception is thrown when the content size exceeds the allowed limit.</p>
1843
+ capo_devops_agent.errors.internal_server_exception.InternalServerException: <p>This exception is thrown when an unexpected error occurs in the processing of a request.</p>
1844
+ capo_devops_agent.errors.invalid_parameter_exception.InvalidParameterException: <p>One or more parameters provided in the request are invalid.</p>
1845
+ capo_devops_agent.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource could not be found.</p>
1846
+ capo_devops_agent.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would exceed the service quota limit.</p>
1847
+ capo_devops_agent.errors.throttling_exception.ThrottlingException: <p>The request was throttled due to too many requests. Please slow down and try again.</p>
1848
+ capo_devops_agent.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service.</p>
1849
+ capo_devops_agent.errors.UnknownServiceError: The service returned an error code this client does not model.
1850
+ """
1851
+
1852
+ def _handler(
1853
+ req: "OperationRequest[capo_devops_agent.types.list_recommendations_request.ListRecommendationsRequest]",
1854
+ ) -> OperationResponse[
1855
+ "capo_devops_agent.types.list_recommendations_response.ListRecommendationsResponse"
1856
+ ]:
1857
+ import capo_devops_agent._operations.dev_ops_agent.list_recommendations
1858
+
1859
+ output, http_response = (
1860
+ capo_devops_agent._operations.dev_ops_agent.list_recommendations.list_recommendations(
1861
+ req.options, req.input
1862
+ )
1863
+ )
1864
+ return OperationResponse(output=output, response=http_response)
1865
+
1866
+ interceptors_, options_ = self.operation_options(config_overrides)
1867
+ input_: capo_devops_agent.types.list_recommendations_request.ListRecommendationsRequest = {
1868
+ "agent_space_id": agent_space_id
1869
+ }
1870
+ if task_id is not None:
1871
+ input_["task_id"] = task_id
1872
+ if goal_id is not None:
1873
+ input_["goal_id"] = goal_id
1874
+ if status is not None:
1875
+ input_["status"] = status
1876
+ if priority is not None:
1877
+ input_["priority"] = priority
1878
+ if limit is not None:
1879
+ input_["limit"] = limit
1880
+ if next_token is not None:
1881
+ input_["next_token"] = next_token
1882
+
1883
+ response = execute_pipeline(
1884
+ OperationRequest(input=input_, options=options_),
1885
+ handler=_handler,
1886
+ interceptors=list(interceptors_),
1887
+ )
1888
+ response.response.close()
1889
+ return response.output
1890
+
1891
+ def list_tags_for_resource(
1892
+ self,
1893
+ resource_arn: str,
1894
+ *,
1895
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
1896
+ ) -> "capo_devops_agent.types.list_tags_for_resource_response.ListTagsForResourceResponse":
1897
+ """<p>Lists tags for the specified AWS DevOps Agent resource.</p>
1898
+
1899
+ Args:
1900
+ resource_arn: <p>The ARN of the resource.</p>
1901
+
1902
+ Raises:
1903
+ capo_devops_agent.errors.access_denied_exception.AccessDeniedException: <p>Access to the requested resource is denied due to insufficient permissions.</p>
1904
+ capo_devops_agent.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource.</p>
1905
+ capo_devops_agent.errors.content_size_exceeded_exception.ContentSizeExceededException: <p>This exception is thrown when the content size exceeds the allowed limit.</p>
1906
+ capo_devops_agent.errors.internal_server_exception.InternalServerException: <p>This exception is thrown when an unexpected error occurs in the processing of a request.</p>
1907
+ capo_devops_agent.errors.invalid_parameter_exception.InvalidParameterException: <p>One or more parameters provided in the request are invalid.</p>
1908
+ capo_devops_agent.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource could not be found.</p>
1909
+ capo_devops_agent.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would exceed the service quota limit.</p>
1910
+ capo_devops_agent.errors.throttling_exception.ThrottlingException: <p>The request was throttled due to too many requests. Please slow down and try again.</p>
1911
+ capo_devops_agent.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service.</p>
1912
+ capo_devops_agent.errors.UnknownServiceError: The service returned an error code this client does not model.
1913
+ """
1914
+
1915
+ def _handler(
1916
+ req: "OperationRequest[capo_devops_agent.types.list_tags_for_resource_request.ListTagsForResourceRequest]",
1917
+ ) -> OperationResponse[
1918
+ "capo_devops_agent.types.list_tags_for_resource_response.ListTagsForResourceResponse"
1919
+ ]:
1920
+ import capo_devops_agent._operations.dev_ops_agent.list_tags_for_resource
1921
+
1922
+ output, http_response = (
1923
+ capo_devops_agent._operations.dev_ops_agent.list_tags_for_resource.list_tags_for_resource(
1924
+ req.options, req.input
1925
+ )
1926
+ )
1927
+ return OperationResponse(output=output, response=http_response)
1928
+
1929
+ interceptors_, options_ = self.operation_options(config_overrides)
1930
+ input_: capo_devops_agent.types.list_tags_for_resource_request.ListTagsForResourceRequest = {
1931
+ "resource_arn": resource_arn
1932
+ }
1933
+
1934
+ response = execute_pipeline(
1935
+ OperationRequest(input=input_, options=options_),
1936
+ handler=_handler,
1937
+ interceptors=list(interceptors_),
1938
+ )
1939
+ response.response.close()
1940
+ return response.output
1941
+
1942
+ @contextmanager
1943
+ def send_message(
1944
+ self,
1945
+ agent_space_id: "capo_devops_agent.types.agent_space_id.AgentSpaceId",
1946
+ execution_id: "capo_devops_agent.types.chat_execution_id.ChatExecutionId",
1947
+ content: "capo_devops_agent.types.message_content.MessageContent",
1948
+ *,
1949
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
1950
+ context: Optional[
1951
+ "capo_devops_agent.types.send_message_context.SendMessageContext"
1952
+ ] = None,
1953
+ user_id: Optional["capo_devops_agent.types.resource_id.ResourceId"] = None,
1954
+ asset_ids: Optional["capo_devops_agent.types.asset_id_list.AssetIdList"] = None,
1955
+ ) -> "Generator[capo_devops_agent.types.send_message_response.SendMessageResponse]":
1956
+ """<p>Sends a chat message and streams the response for the specified agent space execution</p>
1957
+
1958
+ Args:
1959
+ agent_space_id: <p>The agent space identifier</p>
1960
+ execution_id: <p>The execution identifier for the chat session</p>
1961
+ content: <p>The user message content</p>
1962
+ context: <p>Optional context for the message</p>
1963
+ user_id: <p>User identifier. This field is deprecated and will be ignored — the service resolves user identity from the authenticated session.</p>
1964
+ asset_ids: <p>Optional list of asset identifiers to attach to the message</p>
1965
+
1966
+ Raises:
1967
+ capo_devops_agent.errors.access_denied_exception.AccessDeniedException: <p>Access to the requested resource is denied due to insufficient permissions.</p>
1968
+ capo_devops_agent.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource.</p>
1969
+ capo_devops_agent.errors.content_size_exceeded_exception.ContentSizeExceededException: <p>This exception is thrown when the content size exceeds the allowed limit.</p>
1970
+ capo_devops_agent.errors.internal_server_exception.InternalServerException: <p>This exception is thrown when an unexpected error occurs in the processing of a request.</p>
1971
+ capo_devops_agent.errors.invalid_parameter_exception.InvalidParameterException: <p>One or more parameters provided in the request are invalid.</p>
1972
+ capo_devops_agent.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource could not be found.</p>
1973
+ capo_devops_agent.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would exceed the service quota limit.</p>
1974
+ capo_devops_agent.errors.throttling_exception.ThrottlingException: <p>The request was throttled due to too many requests. Please slow down and try again.</p>
1975
+ capo_devops_agent.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service.</p>
1976
+ capo_devops_agent.errors.UnknownServiceError: The service returned an error code this client does not model.
1977
+ """
1978
+
1979
+ def _handler(
1980
+ req: "OperationRequest[capo_devops_agent.types.send_message_request.SendMessageRequest]",
1981
+ ) -> OperationResponse[
1982
+ "capo_devops_agent.types.send_message_response.SendMessageResponse"
1983
+ ]:
1984
+ import capo_devops_agent._operations.dev_ops_agent.send_message
1985
+
1986
+ output, http_response = (
1987
+ capo_devops_agent._operations.dev_ops_agent.send_message.send_message(
1988
+ req.options, req.input
1989
+ )
1990
+ )
1991
+ return OperationResponse(output=output, response=http_response)
1992
+
1993
+ interceptors_, options_ = self.operation_options(config_overrides)
1994
+ input_: capo_devops_agent.types.send_message_request.SendMessageRequest = {
1995
+ "agent_space_id": agent_space_id,
1996
+ "execution_id": execution_id,
1997
+ "content": content,
1998
+ }
1999
+ if context is not None:
2000
+ input_["context"] = context
2001
+ if user_id is not None:
2002
+ input_["user_id"] = user_id
2003
+ if asset_ids is not None:
2004
+ input_["asset_ids"] = asset_ids
2005
+
2006
+ response = execute_pipeline(
2007
+ OperationRequest(input=input_, options=options_),
2008
+ handler=_handler,
2009
+ interceptors=list(interceptors_),
2010
+ )
2011
+ try:
2012
+ yield response.output
2013
+ finally:
2014
+ response.response.close()
2015
+
2016
+ def tag_resource(
2017
+ self,
2018
+ resource_arn: str,
2019
+ tags: "capo_devops_agent.types.tags.Tags",
2020
+ *,
2021
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
2022
+ ) -> "capo_devops_agent.types.tag_resource_response.TagResourceResponse":
2023
+ """<p>Adds or overwrites tags for the specified AWS DevOps Agent resource.</p>
2024
+
2025
+ Args:
2026
+ resource_arn: <p>The ARN of the resource to tag.</p>
2027
+ tags: <p>Tags to add to the resource.</p>
2028
+
2029
+ Raises:
2030
+ capo_devops_agent.errors.access_denied_exception.AccessDeniedException: <p>Access to the requested resource is denied due to insufficient permissions.</p>
2031
+ capo_devops_agent.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource.</p>
2032
+ capo_devops_agent.errors.content_size_exceeded_exception.ContentSizeExceededException: <p>This exception is thrown when the content size exceeds the allowed limit.</p>
2033
+ capo_devops_agent.errors.internal_server_exception.InternalServerException: <p>This exception is thrown when an unexpected error occurs in the processing of a request.</p>
2034
+ capo_devops_agent.errors.invalid_parameter_exception.InvalidParameterException: <p>One or more parameters provided in the request are invalid.</p>
2035
+ capo_devops_agent.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource could not be found.</p>
2036
+ capo_devops_agent.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would exceed the service quota limit.</p>
2037
+ capo_devops_agent.errors.throttling_exception.ThrottlingException: <p>The request was throttled due to too many requests. Please slow down and try again.</p>
2038
+ capo_devops_agent.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service.</p>
2039
+ capo_devops_agent.errors.UnknownServiceError: The service returned an error code this client does not model.
2040
+ """
2041
+
2042
+ def _handler(
2043
+ req: "OperationRequest[capo_devops_agent.types.tag_resource_request.TagResourceRequest]",
2044
+ ) -> OperationResponse[
2045
+ "capo_devops_agent.types.tag_resource_response.TagResourceResponse"
2046
+ ]:
2047
+ import capo_devops_agent._operations.dev_ops_agent.tag_resource
2048
+
2049
+ output, http_response = (
2050
+ capo_devops_agent._operations.dev_ops_agent.tag_resource.tag_resource(
2051
+ req.options, req.input
2052
+ )
2053
+ )
2054
+ return OperationResponse(output=output, response=http_response)
2055
+
2056
+ interceptors_, options_ = self.operation_options(config_overrides)
2057
+ input_: capo_devops_agent.types.tag_resource_request.TagResourceRequest = {
2058
+ "resource_arn": resource_arn,
2059
+ "tags": tags,
2060
+ }
2061
+
2062
+ response = execute_pipeline(
2063
+ OperationRequest(input=input_, options=options_),
2064
+ handler=_handler,
2065
+ interceptors=list(interceptors_),
2066
+ )
2067
+ response.response.close()
2068
+ return response.output
2069
+
2070
+ def untag_resource(
2071
+ self,
2072
+ resource_arn: str,
2073
+ tag_keys: "capo_devops_agent.types.tag_key_list.TagKeyList",
2074
+ *,
2075
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
2076
+ ) -> "capo_devops_agent.types.untag_resource_response.UntagResourceResponse":
2077
+ """<p>Removes tags from the specified AWS DevOps Agent resource.</p>
2078
+
2079
+ Args:
2080
+ resource_arn: <p>The ARN of the resource to untag.</p>
2081
+ tag_keys: <p>Tag keys to remove.</p>
2082
+
2083
+ Raises:
2084
+ capo_devops_agent.errors.access_denied_exception.AccessDeniedException: <p>Access to the requested resource is denied due to insufficient permissions.</p>
2085
+ capo_devops_agent.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource.</p>
2086
+ capo_devops_agent.errors.content_size_exceeded_exception.ContentSizeExceededException: <p>This exception is thrown when the content size exceeds the allowed limit.</p>
2087
+ capo_devops_agent.errors.internal_server_exception.InternalServerException: <p>This exception is thrown when an unexpected error occurs in the processing of a request.</p>
2088
+ capo_devops_agent.errors.invalid_parameter_exception.InvalidParameterException: <p>One or more parameters provided in the request are invalid.</p>
2089
+ capo_devops_agent.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource could not be found.</p>
2090
+ capo_devops_agent.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would exceed the service quota limit.</p>
2091
+ capo_devops_agent.errors.throttling_exception.ThrottlingException: <p>The request was throttled due to too many requests. Please slow down and try again.</p>
2092
+ capo_devops_agent.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service.</p>
2093
+ capo_devops_agent.errors.UnknownServiceError: The service returned an error code this client does not model.
2094
+ """
2095
+
2096
+ def _handler(
2097
+ req: "OperationRequest[capo_devops_agent.types.untag_resource_request.UntagResourceRequest]",
2098
+ ) -> OperationResponse[
2099
+ "capo_devops_agent.types.untag_resource_response.UntagResourceResponse"
2100
+ ]:
2101
+ import capo_devops_agent._operations.dev_ops_agent.untag_resource
2102
+
2103
+ output, http_response = (
2104
+ capo_devops_agent._operations.dev_ops_agent.untag_resource.untag_resource(
2105
+ req.options, req.input
2106
+ )
2107
+ )
2108
+ return OperationResponse(output=output, response=http_response)
2109
+
2110
+ interceptors_, options_ = self.operation_options(config_overrides)
2111
+ input_: capo_devops_agent.types.untag_resource_request.UntagResourceRequest = {
2112
+ "resource_arn": resource_arn,
2113
+ "tag_keys": tag_keys,
2114
+ }
2115
+
2116
+ response = execute_pipeline(
2117
+ OperationRequest(input=input_, options=options_),
2118
+ handler=_handler,
2119
+ interceptors=list(interceptors_),
2120
+ )
2121
+ response.response.close()
2122
+ return response.output
2123
+
2124
+ def update_asset(
2125
+ self,
2126
+ agent_space_id: "capo_devops_agent.types.agent_space_id.AgentSpaceId",
2127
+ asset_id: "capo_devops_agent.types.resource_id.ResourceId",
2128
+ *,
2129
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
2130
+ metadata: Optional[object] = None,
2131
+ content: Optional["capo_devops_agent.types.asset_content.AssetContent"] = None,
2132
+ client_token: Optional[str] = None,
2133
+ ) -> "capo_devops_agent.types.update_asset_response.UpdateAssetResponse":
2134
+ """<p>Updates an asset in the specified agent space</p>
2135
+
2136
+ Args:
2137
+ agent_space_id: <p>The unique identifier for the agent space containing the asset</p>
2138
+ asset_id: <p>The unique identifier of the asset to update</p>
2139
+ metadata: <p>Metadata fields to update. Only the fields present in this document are updated. Omitted fields retain their current values.</p>
2140
+ content: <p>Optional content to set or replace. A single file adds or replaces one file; a zip replaces all files.</p>
2141
+ client_token: <p>A unique, case-sensitive identifier used for idempotent asset update</p>
2142
+
2143
+ Raises:
2144
+ capo_devops_agent.errors.access_denied_exception.AccessDeniedException: <p>Access to the requested resource is denied due to insufficient permissions.</p>
2145
+ capo_devops_agent.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource.</p>
2146
+ capo_devops_agent.errors.content_size_exceeded_exception.ContentSizeExceededException: <p>This exception is thrown when the content size exceeds the allowed limit.</p>
2147
+ capo_devops_agent.errors.internal_server_exception.InternalServerException: <p>This exception is thrown when an unexpected error occurs in the processing of a request.</p>
2148
+ capo_devops_agent.errors.invalid_parameter_exception.InvalidParameterException: <p>One or more parameters provided in the request are invalid.</p>
2149
+ capo_devops_agent.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource could not be found.</p>
2150
+ capo_devops_agent.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would exceed the service quota limit.</p>
2151
+ capo_devops_agent.errors.throttling_exception.ThrottlingException: <p>The request was throttled due to too many requests. Please slow down and try again.</p>
2152
+ capo_devops_agent.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service.</p>
2153
+ capo_devops_agent.errors.UnknownServiceError: The service returned an error code this client does not model.
2154
+ """
2155
+
2156
+ def _handler(
2157
+ req: "OperationRequest[capo_devops_agent.types.update_asset_request.UpdateAssetRequest]",
2158
+ ) -> OperationResponse[
2159
+ "capo_devops_agent.types.update_asset_response.UpdateAssetResponse"
2160
+ ]:
2161
+ import capo_devops_agent._operations.dev_ops_agent.update_asset
2162
+
2163
+ output, http_response = (
2164
+ capo_devops_agent._operations.dev_ops_agent.update_asset.update_asset(
2165
+ req.options, req.input
2166
+ )
2167
+ )
2168
+ return OperationResponse(output=output, response=http_response)
2169
+
2170
+ interceptors_, options_ = self.operation_options(config_overrides)
2171
+ input_: capo_devops_agent.types.update_asset_request.UpdateAssetRequest = {
2172
+ "agent_space_id": agent_space_id,
2173
+ "asset_id": asset_id,
2174
+ }
2175
+ if metadata is not None:
2176
+ input_["metadata"] = metadata
2177
+ if content is not None:
2178
+ input_["content"] = content
2179
+ if client_token is None:
2180
+ client_token = str(uuid.uuid4())
2181
+ input_["client_token"] = client_token
2182
+
2183
+ response = execute_pipeline(
2184
+ OperationRequest(input=input_, options=options_),
2185
+ handler=_handler,
2186
+ interceptors=list(interceptors_),
2187
+ )
2188
+ response.response.close()
2189
+ return response.output
2190
+
2191
+ def update_asset_file(
2192
+ self,
2193
+ agent_space_id: "capo_devops_agent.types.agent_space_id.AgentSpaceId",
2194
+ asset_id: "capo_devops_agent.types.resource_id.ResourceId",
2195
+ path: "capo_devops_agent.types.asset_file_path.AssetFilePath",
2196
+ *,
2197
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
2198
+ content: Optional[
2199
+ "capo_devops_agent.types.asset_file_body.AssetFileBody"
2200
+ ] = None,
2201
+ metadata: Optional[object] = None,
2202
+ client_token: Optional[str] = None,
2203
+ ) -> "capo_devops_agent.types.update_asset_file_response.UpdateAssetFileResponse":
2204
+ """<p>Updates a file in an asset</p>
2205
+
2206
+ Args:
2207
+ agent_space_id: <p>The unique identifier for the agent space containing the asset</p>
2208
+ asset_id: <p>The unique identifier of the asset containing the file</p>
2209
+ path: <p>The path of the file within the asset to update</p>
2210
+ content: <p>Updated file content. If omitted, the existing content is unchanged.</p>
2211
+ metadata: <p>Metadata fields to update. Only the fields present in this document are updated. Omitted fields retain their current values.</p>
2212
+ client_token: <p>A unique, case-sensitive identifier used for idempotent asset file update</p>
2213
+
2214
+ Raises:
2215
+ capo_devops_agent.errors.access_denied_exception.AccessDeniedException: <p>Access to the requested resource is denied due to insufficient permissions.</p>
2216
+ capo_devops_agent.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource.</p>
2217
+ capo_devops_agent.errors.content_size_exceeded_exception.ContentSizeExceededException: <p>This exception is thrown when the content size exceeds the allowed limit.</p>
2218
+ capo_devops_agent.errors.internal_server_exception.InternalServerException: <p>This exception is thrown when an unexpected error occurs in the processing of a request.</p>
2219
+ capo_devops_agent.errors.invalid_parameter_exception.InvalidParameterException: <p>One or more parameters provided in the request are invalid.</p>
2220
+ capo_devops_agent.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource could not be found.</p>
2221
+ capo_devops_agent.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would exceed the service quota limit.</p>
2222
+ capo_devops_agent.errors.throttling_exception.ThrottlingException: <p>The request was throttled due to too many requests. Please slow down and try again.</p>
2223
+ capo_devops_agent.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service.</p>
2224
+ capo_devops_agent.errors.UnknownServiceError: The service returned an error code this client does not model.
2225
+ """
2226
+
2227
+ def _handler(
2228
+ req: "OperationRequest[capo_devops_agent.types.update_asset_file_request.UpdateAssetFileRequest]",
2229
+ ) -> OperationResponse[
2230
+ "capo_devops_agent.types.update_asset_file_response.UpdateAssetFileResponse"
2231
+ ]:
2232
+ import capo_devops_agent._operations.dev_ops_agent.update_asset_file
2233
+
2234
+ output, http_response = (
2235
+ capo_devops_agent._operations.dev_ops_agent.update_asset_file.update_asset_file(
2236
+ req.options, req.input
2237
+ )
2238
+ )
2239
+ return OperationResponse(output=output, response=http_response)
2240
+
2241
+ interceptors_, options_ = self.operation_options(config_overrides)
2242
+ input_: capo_devops_agent.types.update_asset_file_request.UpdateAssetFileRequest = {
2243
+ "agent_space_id": agent_space_id,
2244
+ "asset_id": asset_id,
2245
+ "path": path,
2246
+ }
2247
+ if content is not None:
2248
+ input_["content"] = content
2249
+ if metadata is not None:
2250
+ input_["metadata"] = metadata
2251
+ if client_token is None:
2252
+ client_token = str(uuid.uuid4())
2253
+ input_["client_token"] = client_token
2254
+
2255
+ response = execute_pipeline(
2256
+ OperationRequest(input=input_, options=options_),
2257
+ handler=_handler,
2258
+ interceptors=list(interceptors_),
2259
+ )
2260
+ response.response.close()
2261
+ return response.output
2262
+
2263
+ def update_backlog_task(
2264
+ self,
2265
+ agent_space_id: "capo_devops_agent.types.agent_space_id.AgentSpaceId",
2266
+ task_id: "capo_devops_agent.types.resource_id.ResourceId",
2267
+ *,
2268
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
2269
+ task_status: Optional["capo_devops_agent.types.task_status.TaskStatus"] = None,
2270
+ client_token: Optional[str] = None,
2271
+ ) -> (
2272
+ "capo_devops_agent.types.update_backlog_task_response.UpdateBacklogTaskResponse"
2273
+ ):
2274
+ """<p>Update an existing backlog task.</p>
2275
+
2276
+ Args:
2277
+ agent_space_id: <p>The unique identifier for the agent space containing the task</p>
2278
+ task_id: <p>The unique identifier of the task to update</p>
2279
+ task_status: <p>Updated task status</p>
2280
+ client_token: <p>Client-provided token for idempotent operations</p>
2281
+
2282
+ Raises:
2283
+ capo_devops_agent.errors.access_denied_exception.AccessDeniedException: <p>Access to the requested resource is denied due to insufficient permissions.</p>
2284
+ capo_devops_agent.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource.</p>
2285
+ capo_devops_agent.errors.content_size_exceeded_exception.ContentSizeExceededException: <p>This exception is thrown when the content size exceeds the allowed limit.</p>
2286
+ capo_devops_agent.errors.internal_server_exception.InternalServerException: <p>This exception is thrown when an unexpected error occurs in the processing of a request.</p>
2287
+ capo_devops_agent.errors.invalid_parameter_exception.InvalidParameterException: <p>One or more parameters provided in the request are invalid.</p>
2288
+ capo_devops_agent.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource could not be found.</p>
2289
+ capo_devops_agent.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would exceed the service quota limit.</p>
2290
+ capo_devops_agent.errors.throttling_exception.ThrottlingException: <p>The request was throttled due to too many requests. Please slow down and try again.</p>
2291
+ capo_devops_agent.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service.</p>
2292
+ capo_devops_agent.errors.UnknownServiceError: The service returned an error code this client does not model.
2293
+ """
2294
+
2295
+ def _handler(
2296
+ req: "OperationRequest[capo_devops_agent.types.update_backlog_task_request.UpdateBacklogTaskRequest]",
2297
+ ) -> OperationResponse[
2298
+ "capo_devops_agent.types.update_backlog_task_response.UpdateBacklogTaskResponse"
2299
+ ]:
2300
+ import capo_devops_agent._operations.dev_ops_agent.update_backlog_task
2301
+
2302
+ output, http_response = (
2303
+ capo_devops_agent._operations.dev_ops_agent.update_backlog_task.update_backlog_task(
2304
+ req.options, req.input
2305
+ )
2306
+ )
2307
+ return OperationResponse(output=output, response=http_response)
2308
+
2309
+ interceptors_, options_ = self.operation_options(config_overrides)
2310
+ input_: capo_devops_agent.types.update_backlog_task_request.UpdateBacklogTaskRequest = {
2311
+ "agent_space_id": agent_space_id,
2312
+ "task_id": task_id,
2313
+ }
2314
+ if task_status is not None:
2315
+ input_["task_status"] = task_status
2316
+ if client_token is None:
2317
+ client_token = str(uuid.uuid4())
2318
+ input_["client_token"] = client_token
2319
+
2320
+ response = execute_pipeline(
2321
+ OperationRequest(input=input_, options=options_),
2322
+ handler=_handler,
2323
+ interceptors=list(interceptors_),
2324
+ )
2325
+ response.response.close()
2326
+ return response.output
2327
+
2328
+ def update_goal(
2329
+ self,
2330
+ agent_space_id: "capo_devops_agent.types.agent_space_id.AgentSpaceId",
2331
+ goal_id: str,
2332
+ *,
2333
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
2334
+ evaluation_schedule: Optional[
2335
+ "capo_devops_agent.types.goal_schedule_input.GoalScheduleInput"
2336
+ ] = None,
2337
+ client_token: Optional[str] = None,
2338
+ ) -> "capo_devops_agent.types.update_goal_response.UpdateGoalResponse":
2339
+ """<p>Update an existing goal</p>
2340
+
2341
+ Args:
2342
+ agent_space_id: <p>The unique identifier for the agent space containing the goal</p>
2343
+ goal_id: <p>The unique identifier of the goal to update</p>
2344
+ evaluation_schedule: <p>Update goal schedule state</p>
2345
+ client_token: <p>Client-provided token for idempotent operations</p>
2346
+
2347
+ Raises:
2348
+ capo_devops_agent.errors.access_denied_exception.AccessDeniedException: <p>Access to the requested resource is denied due to insufficient permissions.</p>
2349
+ capo_devops_agent.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource.</p>
2350
+ capo_devops_agent.errors.content_size_exceeded_exception.ContentSizeExceededException: <p>This exception is thrown when the content size exceeds the allowed limit.</p>
2351
+ capo_devops_agent.errors.internal_server_exception.InternalServerException: <p>This exception is thrown when an unexpected error occurs in the processing of a request.</p>
2352
+ capo_devops_agent.errors.invalid_parameter_exception.InvalidParameterException: <p>One or more parameters provided in the request are invalid.</p>
2353
+ capo_devops_agent.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource could not be found.</p>
2354
+ capo_devops_agent.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would exceed the service quota limit.</p>
2355
+ capo_devops_agent.errors.throttling_exception.ThrottlingException: <p>The request was throttled due to too many requests. Please slow down and try again.</p>
2356
+ capo_devops_agent.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service.</p>
2357
+ capo_devops_agent.errors.UnknownServiceError: The service returned an error code this client does not model.
2358
+ """
2359
+
2360
+ def _handler(
2361
+ req: "OperationRequest[capo_devops_agent.types.update_goal_request.UpdateGoalRequest]",
2362
+ ) -> OperationResponse[
2363
+ "capo_devops_agent.types.update_goal_response.UpdateGoalResponse"
2364
+ ]:
2365
+ import capo_devops_agent._operations.dev_ops_agent.update_goal
2366
+
2367
+ output, http_response = (
2368
+ capo_devops_agent._operations.dev_ops_agent.update_goal.update_goal(
2369
+ req.options, req.input
2370
+ )
2371
+ )
2372
+ return OperationResponse(output=output, response=http_response)
2373
+
2374
+ interceptors_, options_ = self.operation_options(config_overrides)
2375
+ input_: capo_devops_agent.types.update_goal_request.UpdateGoalRequest = {
2376
+ "agent_space_id": agent_space_id,
2377
+ "goal_id": goal_id,
2378
+ }
2379
+ if evaluation_schedule is not None:
2380
+ input_["evaluation_schedule"] = evaluation_schedule
2381
+ if client_token is None:
2382
+ client_token = str(uuid.uuid4())
2383
+ input_["client_token"] = client_token
2384
+
2385
+ response = execute_pipeline(
2386
+ OperationRequest(input=input_, options=options_),
2387
+ handler=_handler,
2388
+ interceptors=list(interceptors_),
2389
+ )
2390
+ response.response.close()
2391
+ return response.output
2392
+
2393
+ def update_recommendation(
2394
+ self,
2395
+ agent_space_id: "capo_devops_agent.types.agent_space_id.AgentSpaceId",
2396
+ recommendation_id: "capo_devops_agent.types.resource_id.ResourceId",
2397
+ *,
2398
+ config_overrides: Optional[DevOpsAgentClientConfig] = None,
2399
+ status: Optional[
2400
+ "capo_devops_agent.types.recommendation_status.RecommendationStatus"
2401
+ ] = None,
2402
+ additional_context: Optional[str] = None,
2403
+ client_token: Optional[str] = None,
2404
+ ) -> "capo_devops_agent.types.update_recommendation_response.UpdateRecommendationResponse":
2405
+ """<p>Updates an existing recommendation with new content, status, or metadata</p>
2406
+
2407
+ Args:
2408
+ agent_space_id: <p>The unique identifier for the agent space containing the recommendation</p>
2409
+ recommendation_id: <p>The unique identifier for the recommendation to update</p>
2410
+ status: <p>Current status of the recommendation</p>
2411
+ additional_context: <p>Additional context for recommendation</p>
2412
+ client_token: <p>A unique token that ensures idempotency of the request</p>
2413
+
2414
+ Raises:
2415
+ capo_devops_agent.errors.access_denied_exception.AccessDeniedException: <p>Access to the requested resource is denied due to insufficient permissions.</p>
2416
+ capo_devops_agent.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource.</p>
2417
+ capo_devops_agent.errors.content_size_exceeded_exception.ContentSizeExceededException: <p>This exception is thrown when the content size exceeds the allowed limit.</p>
2418
+ capo_devops_agent.errors.internal_server_exception.InternalServerException: <p>This exception is thrown when an unexpected error occurs in the processing of a request.</p>
2419
+ capo_devops_agent.errors.invalid_parameter_exception.InvalidParameterException: <p>One or more parameters provided in the request are invalid.</p>
2420
+ capo_devops_agent.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource could not be found.</p>
2421
+ capo_devops_agent.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would exceed the service quota limit.</p>
2422
+ capo_devops_agent.errors.throttling_exception.ThrottlingException: <p>The request was throttled due to too many requests. Please slow down and try again.</p>
2423
+ capo_devops_agent.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service.</p>
2424
+ capo_devops_agent.errors.UnknownServiceError: The service returned an error code this client does not model.
2425
+ """
2426
+
2427
+ def _handler(
2428
+ req: "OperationRequest[capo_devops_agent.types.update_recommendation_request.UpdateRecommendationRequest]",
2429
+ ) -> OperationResponse[
2430
+ "capo_devops_agent.types.update_recommendation_response.UpdateRecommendationResponse"
2431
+ ]:
2432
+ import capo_devops_agent._operations.dev_ops_agent.update_recommendation
2433
+
2434
+ output, http_response = (
2435
+ capo_devops_agent._operations.dev_ops_agent.update_recommendation.update_recommendation(
2436
+ req.options, req.input
2437
+ )
2438
+ )
2439
+ return OperationResponse(output=output, response=http_response)
2440
+
2441
+ interceptors_, options_ = self.operation_options(config_overrides)
2442
+ input_: capo_devops_agent.types.update_recommendation_request.UpdateRecommendationRequest = {
2443
+ "agent_space_id": agent_space_id,
2444
+ "recommendation_id": recommendation_id,
2445
+ }
2446
+ if status is not None:
2447
+ input_["status"] = status
2448
+ if additional_context is not None:
2449
+ input_["additional_context"] = additional_context
2450
+ if client_token is None:
2451
+ client_token = str(uuid.uuid4())
2452
+ input_["client_token"] = client_token
2453
+
2454
+ response = execute_pipeline(
2455
+ OperationRequest(input=input_, options=options_),
2456
+ handler=_handler,
2457
+ interceptors=list(interceptors_),
2458
+ )
2459
+ response.response.close()
2460
+ return response.output
2461
+
2462
+ def __enter__(self) -> Self:
2463
+ return self
2464
+
2465
+ def __exit__(self, exc_type: Any, exc: Any, tb: Any):
2466
+ self._client.close()