capo-redshift-data 0.8.0__tar.gz → 0.9.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. {capo_redshift_data-0.8.0/src/capo_redshift_data.egg-info → capo_redshift_data-0.9.0}/PKG-INFO +10 -2
  2. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/README.md +5 -1
  3. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/pyproject.toml +7 -1
  4. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/__init__.py +6 -0
  5. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/errors/batch_execute_statement_exception.py +3 -5
  6. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/errors/database_connection_exception.py +2 -2
  7. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/errors/execute_statement_exception.py +3 -3
  8. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/errors/internal_server_exception.py +2 -2
  9. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/errors/resource_not_found_exception.py +3 -3
  10. capo_redshift_data-0.9.0/src/capo_redshift_data/types/_unknown.py +34 -0
  11. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/batch_execute_statement_input.py +1 -3
  12. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/cancel_statement_request.py +1 -3
  13. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/describe_statement_request.py +1 -3
  14. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/describe_statement_response.py +1 -3
  15. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/describe_table_request.py +4 -7
  16. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/execute_statement_input.py +1 -3
  17. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/field.py +12 -1
  18. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/get_statement_result_request.py +1 -3
  19. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/get_statement_result_response.py +1 -3
  20. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/get_statement_result_v2_request.py +1 -3
  21. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/get_statement_result_v2_response.py +1 -3
  22. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/list_databases_request.py +3 -4
  23. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/list_schemas_request.py +4 -7
  24. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/list_sessions_request.py +5 -4
  25. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/list_sessions_response.py +1 -3
  26. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/list_statements_request.py +5 -4
  27. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/list_statements_response.py +1 -3
  28. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/list_tables_request.py +4 -7
  29. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/query_records.py +12 -2
  30. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/session_data.py +5 -5
  31. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/sql_parameter.py +2 -4
  32. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/statement_data.py +1 -3
  33. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/sub_statement_data.py +1 -3
  34. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0/src/capo_redshift_data.egg-info}/PKG-INFO +10 -2
  35. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data.egg-info/SOURCES.txt +1 -0
  36. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/LICENSE +0 -0
  37. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/setup.cfg +0 -0
  38. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_async.py +0 -0
  39. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_auth/_identity.py +0 -0
  40. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_auth/_providers.py +0 -0
  41. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_auth/_signers.py +0 -0
  42. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_auth/_sigv4.py +0 -0
  43. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_auth/_zapros_handler.py +0 -0
  44. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_aws.py +0 -0
  45. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_body.py +0 -0
  46. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_iter.py +0 -0
  47. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_operations/redshift_data/batch_execute_statement.py +0 -0
  48. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_operations/redshift_data/cancel_statement.py +0 -0
  49. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_operations/redshift_data/describe_statement.py +0 -0
  50. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_operations/redshift_data/describe_table.py +0 -0
  51. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_operations/redshift_data/execute_statement.py +0 -0
  52. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_operations/redshift_data/get_statement_result.py +0 -0
  53. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_operations/redshift_data/get_statement_result_v2.py +0 -0
  54. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_operations/redshift_data/list_databases.py +0 -0
  55. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_operations/redshift_data/list_schemas.py +0 -0
  56. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_operations/redshift_data/list_sessions.py +0 -0
  57. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_operations/redshift_data/list_statements.py +0 -0
  58. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_operations/redshift_data/list_tables.py +0 -0
  59. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_pagination.py +0 -0
  60. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_protocol/__init__.py +0 -0
  61. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_protocol/errors.py +0 -0
  62. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_protocol/eventstream.py +0 -0
  63. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_protocol/serialize.py +0 -0
  64. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_protocol/xml.py +0 -0
  65. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_rule_engine/__init__.py +0 -0
  66. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_rule_engine/_aws_partition.py +0 -0
  67. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_rule_engine/_endpoint_rule_set.py +0 -0
  68. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_rule_engine/_endpoint_runtime.py +0 -0
  69. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_services/_aws_config.py +0 -0
  70. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_services/_pipeline.py +0 -0
  71. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_services/async_redshift_data.py +0 -0
  72. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/_services/redshift_data.py +0 -0
  73. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/errors/__init__.py +0 -0
  74. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/errors/_base.py +0 -0
  75. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/errors/active_sessions_exceeded_exception.py +0 -0
  76. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/errors/active_statements_exceeded_exception.py +0 -0
  77. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/errors/active_waiting_requests_exceeded_exception.py +0 -0
  78. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/errors/query_timeout_exception.py +0 -0
  79. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/errors/validation_exception.py +0 -0
  80. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/py.typed +0 -0
  81. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/_prelude/blob.py +0 -0
  82. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/_prelude/timestamp.py +0 -0
  83. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/batch_execute_statement_output.py +0 -0
  84. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/blob.py +0 -0
  85. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/bool.py +0 -0
  86. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/boxed_boolean.py +0 -0
  87. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/boxed_double.py +0 -0
  88. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/boxed_long.py +0 -0
  89. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/cancel_statement_response.py +0 -0
  90. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/client_token.py +0 -0
  91. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/cluster_identifier_string.py +0 -0
  92. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/column_list.py +0 -0
  93. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/column_metadata.py +0 -0
  94. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/column_metadata_list.py +0 -0
  95. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/database_list.py +0 -0
  96. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/db_group_list.py +0 -0
  97. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/describe_table_response.py +0 -0
  98. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/execute_statement_output.py +0 -0
  99. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/execution_mode.py +0 -0
  100. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/field_list.py +0 -0
  101. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/formatted_sql_records.py +0 -0
  102. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/integer.py +0 -0
  103. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/list_databases_response.py +0 -0
  104. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/list_schemas_response.py +0 -0
  105. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/list_statements_limit.py +0 -0
  106. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/list_tables_response.py +0 -0
  107. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/long.py +0 -0
  108. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/page_size.py +0 -0
  109. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/parameter_name.py +0 -0
  110. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/parameter_value.py +0 -0
  111. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/result_format_string.py +0 -0
  112. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/schema_list.py +0 -0
  113. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/secret_arn.py +0 -0
  114. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/session_alive_seconds.py +0 -0
  115. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/session_list.py +0 -0
  116. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/session_status_string.py +0 -0
  117. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/sql_list.py +0 -0
  118. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/sql_parameters_list.py +0 -0
  119. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/sql_records.py +0 -0
  120. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/statement_list.py +0 -0
  121. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/statement_name_string.py +0 -0
  122. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/statement_status_string.py +0 -0
  123. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/statement_string.py +0 -0
  124. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/statement_string_list.py +0 -0
  125. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/status_string.py +0 -0
  126. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/string.py +0 -0
  127. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/sub_statement_list.py +0 -0
  128. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/table_list.py +0 -0
  129. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/table_member.py +0 -0
  130. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/uuid.py +0 -0
  131. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/wait_time_seconds.py +0 -0
  132. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data/types/workgroup_name_string.py +0 -0
  133. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data.egg-info/dependency_links.txt +0 -0
  134. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data.egg-info/requires.txt +0 -0
  135. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/src/capo_redshift_data.egg-info/top_level.txt +0 -0
  136. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/tests/test_body.py +0 -0
  137. {capo_redshift_data-0.8.0 → capo_redshift_data-0.9.0}/tests/test_sigv4.py +0 -0
@@ -1,7 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: capo-redshift-data
3
- Version: 0.8.0
3
+ Version: 0.9.0
4
4
  Summary: Python SDK for AWS Redshift Data.
5
+ Project-URL: Homepage, https://capo-sdk.dev/
6
+ Project-URL: Documentation, https://capo-sdk.dev/services/redshift-data/
7
+ Project-URL: Repository, https://github.com/kap-sh/capo/tree/main/services/redshift-data
8
+ Project-URL: Changelog, https://github.com/kap-sh/capo/blob/main/services/redshift-data/CHANGELOG.md
5
9
  Classifier: Development Status :: 4 - Beta
6
10
  Classifier: Intended Audience :: Developers
7
11
  Classifier: License :: OSI Approved :: MIT License
@@ -26,7 +30,11 @@ Requires-Dist: capo-sso-oidc>=0.2.0; extra == "sso"
26
30
  Requires-Dist: capo-sts>=0.3.0; extra == "sso"
27
31
  Dynamic: license-file
28
32
 
29
- # Getting Started
33
+ # capo-redshift-data: typed, async Python SDK for AWS Redshift Data
34
+
35
+ `capo-redshift-data` is a typed Python SDK for AWS Redshift Data. It has an async client, `AsyncRedshiftDataClient`, for asyncio and trio, and a sync client, `RedshiftDataClient`, with the same methods. Requests and responses are typed with TypedDicts, so your editor and type checker know every field.
36
+
37
+ It is part of [capo](https://capo-sdk.dev/), a community-driven alternative to boto3 and aioboto3, built on its own HTTP stack instead of botocore and generated from the official AWS Smithy models. Documentation: [https://capo-sdk.dev/services/redshift-data/](https://capo-sdk.dev/services/redshift-data/)
30
38
 
31
39
  ## Installation
32
40
 
@@ -1,4 +1,8 @@
1
- # Getting Started
1
+ # capo-redshift-data: typed, async Python SDK for AWS Redshift Data
2
+
3
+ `capo-redshift-data` is a typed Python SDK for AWS Redshift Data. It has an async client, `AsyncRedshiftDataClient`, for asyncio and trio, and a sync client, `RedshiftDataClient`, with the same methods. Requests and responses are typed with TypedDicts, so your editor and type checker know every field.
4
+
5
+ It is part of [capo](https://capo-sdk.dev/), a community-driven alternative to boto3 and aioboto3, built on its own HTTP stack instead of botocore and generated from the official AWS Smithy models. Documentation: [https://capo-sdk.dev/services/redshift-data/](https://capo-sdk.dev/services/redshift-data/)
2
6
 
3
7
  ## Installation
4
8
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "capo-redshift-data"
3
- version = "0.8.0"
3
+ version = "0.9.0"
4
4
  description = "Python SDK for AWS Redshift Data."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -22,6 +22,12 @@ dependencies = [
22
22
  "zapros>=0.21.0",
23
23
  ]
24
24
 
25
+ [project.urls]
26
+ Homepage = "https://capo-sdk.dev/"
27
+ Documentation = "https://capo-sdk.dev/services/redshift-data/"
28
+ Repository = "https://github.com/kap-sh/capo/tree/main/services/redshift-data"
29
+ Changelog = "https://github.com/kap-sh/capo/blob/main/services/redshift-data/CHANGELOG.md"
30
+
25
31
  [project.optional-dependencies]
26
32
  # Async file request bodies via Body.async_from_path
27
33
  anyio = ["anyio>=3.0"]
@@ -77,3 +77,9 @@ from ._services.async_redshift_data import (
77
77
  AsyncRedshiftDataClient as AsyncRedshiftDataClient,
78
78
  )
79
79
  from ._services.redshift_data import RedshiftDataClient as RedshiftDataClient
80
+ from .types._unknown import (
81
+ UnknownEvent as UnknownEvent,
82
+ )
83
+ from .types._unknown import (
84
+ UnknownUnionMember as UnknownUnionMember,
85
+ )
@@ -5,7 +5,7 @@ from typing import TYPE_CHECKING
5
5
  import zapros
6
6
  from typing_extensions import TypedDict
7
7
 
8
- from capo_redshift_data.errors import DeserializationError, ServiceError
8
+ from capo_redshift_data.errors import ServiceError
9
9
 
10
10
  if TYPE_CHECKING:
11
11
  import capo_redshift_data.types.string
@@ -30,13 +30,11 @@ def deserialize_aws_json_1_1(data: dict) -> BatchExecuteStatementException_:
30
30
  if data.get("Message") is not None:
31
31
  out["message"] = data["Message"]
32
32
  else:
33
- raise DeserializationError("BatchExecuteStatementException_.message required")
33
+ out["message"] = ""
34
34
  if data.get("StatementId") is not None:
35
35
  out["statement_id"] = data["StatementId"]
36
36
  else:
37
- raise DeserializationError(
38
- "BatchExecuteStatementException_.statement_id required"
39
- )
37
+ out["statement_id"] = ""
40
38
  return out
41
39
 
42
40
 
@@ -5,7 +5,7 @@ from typing import TYPE_CHECKING
5
5
  import zapros
6
6
  from typing_extensions import TypedDict
7
7
 
8
- from capo_redshift_data.errors import DeserializationError, ServiceError
8
+ from capo_redshift_data.errors import ServiceError
9
9
 
10
10
  if TYPE_CHECKING:
11
11
  import capo_redshift_data.types.string
@@ -27,7 +27,7 @@ def deserialize_aws_json_1_1(data: dict) -> DatabaseConnectionException_:
27
27
  if data.get("Message") is not None:
28
28
  out["message"] = data["Message"]
29
29
  else:
30
- raise DeserializationError("DatabaseConnectionException_.message required")
30
+ out["message"] = ""
31
31
  return out
32
32
 
33
33
 
@@ -5,7 +5,7 @@ from typing import TYPE_CHECKING
5
5
  import zapros
6
6
  from typing_extensions import TypedDict
7
7
 
8
- from capo_redshift_data.errors import DeserializationError, ServiceError
8
+ from capo_redshift_data.errors import ServiceError
9
9
 
10
10
  if TYPE_CHECKING:
11
11
  import capo_redshift_data.types.string
@@ -31,11 +31,11 @@ def deserialize_aws_json_1_1(data: dict) -> ExecuteStatementException_:
31
31
  if data.get("Message") is not None:
32
32
  out["message"] = data["Message"]
33
33
  else:
34
- raise DeserializationError("ExecuteStatementException_.message required")
34
+ out["message"] = ""
35
35
  if data.get("StatementId") is not None:
36
36
  out["statement_id"] = data["StatementId"]
37
37
  else:
38
- raise DeserializationError("ExecuteStatementException_.statement_id required")
38
+ out["statement_id"] = ""
39
39
  return out
40
40
 
41
41
 
@@ -5,7 +5,7 @@ from typing import TYPE_CHECKING
5
5
  import zapros
6
6
  from typing_extensions import TypedDict
7
7
 
8
- from capo_redshift_data.errors import DeserializationError, ServiceError
8
+ from capo_redshift_data.errors import ServiceError
9
9
 
10
10
  if TYPE_CHECKING:
11
11
  import capo_redshift_data.types.string
@@ -28,7 +28,7 @@ def deserialize_aws_json_1_1(data: dict) -> InternalServerException_:
28
28
  if data.get("Message") is not None:
29
29
  out["message"] = data["Message"]
30
30
  else:
31
- raise DeserializationError("InternalServerException_.message required")
31
+ out["message"] = ""
32
32
  return out
33
33
 
34
34
 
@@ -5,7 +5,7 @@ from typing import TYPE_CHECKING
5
5
  import zapros
6
6
  from typing_extensions import TypedDict
7
7
 
8
- from capo_redshift_data.errors import DeserializationError, ServiceError
8
+ from capo_redshift_data.errors import ServiceError
9
9
 
10
10
  if TYPE_CHECKING:
11
11
  import capo_redshift_data.types.string
@@ -31,11 +31,11 @@ def deserialize_aws_json_1_1(data: dict) -> ResourceNotFoundException_:
31
31
  if data.get("Message") is not None:
32
32
  out["message"] = data["Message"]
33
33
  else:
34
- raise DeserializationError("ResourceNotFoundException_.message required")
34
+ out["message"] = ""
35
35
  if data.get("ResourceId") is not None:
36
36
  out["resource_id"] = data["ResourceId"]
37
37
  else:
38
- raise DeserializationError("ResourceNotFoundException_.resource_id required")
38
+ out["resource_id"] = ""
39
39
  return out
40
40
 
41
41
 
@@ -0,0 +1,34 @@
1
+ """Stand-ins for union variants and events this client doesn't know about.
2
+
3
+ A service may add a union member or an event after the client was generated.
4
+ Smithy asks clients not to fail on those, so deserialization returns one of
5
+ these instead of raising.
6
+ """
7
+
8
+ from __future__ import annotations
9
+
10
+ from dataclasses import dataclass
11
+
12
+ from .._protocol.eventstream import Message
13
+
14
+
15
+ @dataclass(frozen=True)
16
+ class UnknownUnionMember:
17
+ """A union variant the service sent that this client has no member for."""
18
+
19
+ name: str
20
+ """The variant's name on the wire."""
21
+
22
+
23
+ @dataclass(frozen=True)
24
+ class UnknownEvent:
25
+ """An event-stream event whose ``:event-type`` this client doesn't know."""
26
+
27
+ event_type: str
28
+ """The event's ``:event-type`` header."""
29
+
30
+ message: Message
31
+ """The raw message, headers and undecoded payload."""
32
+
33
+
34
+ __all__ = ["UnknownEvent", "UnknownUnionMember"]
@@ -4,8 +4,6 @@ from typing import TYPE_CHECKING
4
4
 
5
5
  from typing_extensions import NotRequired, TypedDict
6
6
 
7
- from capo_redshift_data.errors import DeserializationError
8
-
9
7
  if TYPE_CHECKING:
10
8
  import capo_redshift_data.types.client_token
11
9
  import capo_redshift_data.types.cluster_identifier_string
@@ -123,7 +121,7 @@ def deserialize_aws_json_1_1(data: dict) -> BatchExecuteStatementInput:
123
121
  data["Sqls"]
124
122
  )
125
123
  else:
126
- raise DeserializationError("BatchExecuteStatementInput.sqls required")
124
+ out["sqls"] = []
127
125
  if data.get("ClusterIdentifier") is not None:
128
126
  out["cluster_identifier"] = data["ClusterIdentifier"]
129
127
  if data.get("SecretArn") is not None:
@@ -4,8 +4,6 @@ from typing import TYPE_CHECKING
4
4
 
5
5
  from typing_extensions import TypedDict
6
6
 
7
- from capo_redshift_data.errors import DeserializationError
8
-
9
7
  if TYPE_CHECKING:
10
8
  import capo_redshift_data.types.uuid
11
9
 
@@ -27,5 +25,5 @@ def deserialize_aws_json_1_1(data: dict) -> CancelStatementRequest:
27
25
  if data.get("Id") is not None:
28
26
  out["id"] = data["Id"]
29
27
  else:
30
- raise DeserializationError("CancelStatementRequest.id required")
28
+ out["id"] = ""
31
29
  return out
@@ -4,8 +4,6 @@ from typing import TYPE_CHECKING
4
4
 
5
5
  from typing_extensions import NotRequired, TypedDict
6
6
 
7
- from capo_redshift_data.errors import DeserializationError
8
-
9
7
  if TYPE_CHECKING:
10
8
  import capo_redshift_data.types.uuid
11
9
  import capo_redshift_data.types.wait_time_seconds
@@ -34,7 +32,7 @@ def deserialize_aws_json_1_1(data: dict) -> DescribeStatementRequest:
34
32
  if data.get("Id") is not None:
35
33
  out["id"] = data["Id"]
36
34
  else:
37
- raise DeserializationError("DescribeStatementRequest.id required")
35
+ out["id"] = ""
38
36
  if data.get("WaitTimeSeconds") is not None:
39
37
  out["wait_time_seconds"] = data["WaitTimeSeconds"]
40
38
  return out
@@ -4,8 +4,6 @@ from typing import TYPE_CHECKING
4
4
 
5
5
  from typing_extensions import NotRequired, TypedDict
6
6
 
7
- from capo_redshift_data.errors import DeserializationError
8
-
9
7
  if TYPE_CHECKING:
10
8
  import datetime
11
9
 
@@ -152,7 +150,7 @@ def deserialize_aws_json_1_1(data: dict) -> DescribeStatementResponse:
152
150
  if data.get("Id") is not None:
153
151
  out["id"] = data["Id"]
154
152
  else:
155
- raise DeserializationError("DescribeStatementResponse.id required")
153
+ out["id"] = ""
156
154
  if data.get("SecretArn") is not None:
157
155
  out["secret_arn"] = data["SecretArn"]
158
156
  if data.get("DbUser") is not None:
@@ -4,8 +4,6 @@ from typing import TYPE_CHECKING
4
4
 
5
5
  from typing_extensions import NotRequired, TypedDict
6
6
 
7
- from capo_redshift_data.errors import DeserializationError
8
-
9
7
  if TYPE_CHECKING:
10
8
  import capo_redshift_data.types.cluster_identifier_string
11
9
  import capo_redshift_data.types.page_size
@@ -33,7 +31,7 @@ class DescribeTableRequest(TypedDict, closed=True):
33
31
  """<p>The table name. If no table is specified, then all tables for all matching schemas are returned. If no table and no schema is specified, then all tables for all schemas in the database are returned</p>"""
34
32
  next_token: NotRequired["capo_redshift_data.types.string.String"]
35
33
  """<p>A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned NextToken value in the next NextToken parameter and retrying the command. If the NextToken field is empty, all response records have been retrieved for the request. </p>"""
36
- max_results: "capo_redshift_data.types.page_size.PageSize"
34
+ max_results: NotRequired["capo_redshift_data.types.page_size.PageSize"]
37
35
  """<p>The maximum number of tables to return in the response. If more tables exist than fit in one response, then <code>NextToken</code> is returned to page through the results. </p>"""
38
36
  workgroup_name: NotRequired[
39
37
  "capo_redshift_data.types.workgroup_name_string.WorkgroupNameString"
@@ -59,7 +57,8 @@ def serialize_aws_json_1_1(value: DescribeTableRequest) -> dict:
59
57
  out["Table"] = value["table"]
60
58
  if "next_token" in value:
61
59
  out["NextToken"] = value["next_token"]
62
- out["MaxResults"] = value.get("max_results", 0)
60
+ if "max_results" in value:
61
+ out["MaxResults"] = value["max_results"]
63
62
  if "workgroup_name" in value:
64
63
  out["WorkgroupName"] = value["workgroup_name"]
65
64
  return out
@@ -76,7 +75,7 @@ def deserialize_aws_json_1_1(data: dict) -> DescribeTableRequest:
76
75
  if data.get("Database") is not None:
77
76
  out["database"] = data["Database"]
78
77
  else:
79
- raise DeserializationError("DescribeTableRequest.database required")
78
+ out["database"] = ""
80
79
  if data.get("ConnectedDatabase") is not None:
81
80
  out["connected_database"] = data["ConnectedDatabase"]
82
81
  if data.get("Schema") is not None:
@@ -87,8 +86,6 @@ def deserialize_aws_json_1_1(data: dict) -> DescribeTableRequest:
87
86
  out["next_token"] = data["NextToken"]
88
87
  if data.get("MaxResults") is not None:
89
88
  out["max_results"] = data["MaxResults"]
90
- else:
91
- out["max_results"] = 0
92
89
  if data.get("WorkgroupName") is not None:
93
90
  out["workgroup_name"] = data["WorkgroupName"]
94
91
  return out
@@ -4,8 +4,6 @@ from typing import TYPE_CHECKING
4
4
 
5
5
  from typing_extensions import NotRequired, TypedDict
6
6
 
7
- from capo_redshift_data.errors import DeserializationError
8
-
9
7
  if TYPE_CHECKING:
10
8
  import capo_redshift_data.types.client_token
11
9
  import capo_redshift_data.types.cluster_identifier_string
@@ -110,7 +108,7 @@ def deserialize_aws_json_1_1(data: dict) -> ExecuteStatementInput:
110
108
  if data.get("Sql") is not None:
111
109
  out["sql"] = data["Sql"]
112
110
  else:
113
- raise DeserializationError("ExecuteStatementInput.sql required")
111
+ out["sql"] = ""
114
112
  if data.get("ClusterIdentifier") is not None:
115
113
  out["cluster_identifier"] = data["ClusterIdentifier"]
116
114
  if data.get("SecretArn") is not None:
@@ -5,6 +5,7 @@ from typing import TYPE_CHECKING, TypeAlias
5
5
  from typing_extensions import TypedDict
6
6
 
7
7
  from capo_redshift_data.errors import DeserializationError, SerializationError
8
+ from capo_redshift_data.types._unknown import UnknownUnionMember
8
9
 
9
10
  if TYPE_CHECKING:
10
11
  import capo_redshift_data.types.blob
@@ -45,12 +46,17 @@ Field: TypeAlias = (
45
46
  | _Field_doubleValue
46
47
  | _Field_stringValue
47
48
  | _Field_blobValue
49
+ | UnknownUnionMember
48
50
  )
49
51
 
50
52
 
51
53
  # --- awsJson1_1 ser/de ---
52
54
  def serialize_aws_json_1_1(value: Field) -> dict:
53
- if "isNull" in value:
55
+ if isinstance(value, UnknownUnionMember):
56
+ raise SerializationError(
57
+ f"Field: cannot serialize unknown variant {value.name!r}"
58
+ )
59
+ elif "isNull" in value:
54
60
  return {"isNull": value["isNull"]}
55
61
  elif "booleanValue" in value:
56
62
  return {"booleanValue": value["booleanValue"]}
@@ -102,4 +108,9 @@ def deserialize_aws_json_1_1(data: dict) -> Field:
102
108
  )
103
109
  }
104
110
  else:
111
+ name = next(
112
+ (k for k, v in data.items() if v is not None and k != "__type"), None
113
+ )
114
+ if name is not None:
115
+ return UnknownUnionMember(name)
105
116
  raise DeserializationError("Field: no recognized variant key")
@@ -4,8 +4,6 @@ from typing import TYPE_CHECKING
4
4
 
5
5
  from typing_extensions import NotRequired, TypedDict
6
6
 
7
- from capo_redshift_data.errors import DeserializationError
8
-
9
7
  if TYPE_CHECKING:
10
8
  import capo_redshift_data.types.string
11
9
  import capo_redshift_data.types.uuid
@@ -39,7 +37,7 @@ def deserialize_aws_json_1_1(data: dict) -> GetStatementResultRequest:
39
37
  if data.get("Id") is not None:
40
38
  out["id"] = data["Id"]
41
39
  else:
42
- raise DeserializationError("GetStatementResultRequest.id required")
40
+ out["id"] = ""
43
41
  if data.get("NextToken") is not None:
44
42
  out["next_token"] = data["NextToken"]
45
43
  if data.get("WaitTimeSeconds") is not None:
@@ -4,8 +4,6 @@ from typing import TYPE_CHECKING
4
4
 
5
5
  from typing_extensions import NotRequired, TypedDict
6
6
 
7
- from capo_redshift_data.errors import DeserializationError
8
-
9
7
  if TYPE_CHECKING:
10
8
  import capo_redshift_data.types.column_metadata_list
11
9
  import capo_redshift_data.types.long
@@ -57,7 +55,7 @@ def deserialize_aws_json_1_1(data: dict) -> GetStatementResultResponse:
57
55
  data["Records"]
58
56
  )
59
57
  else:
60
- raise DeserializationError("GetStatementResultResponse.records required")
58
+ out["records"] = []
61
59
  if data.get("ColumnMetadata") is not None:
62
60
  import capo_redshift_data.types.column_metadata_list
63
61
 
@@ -4,8 +4,6 @@ from typing import TYPE_CHECKING
4
4
 
5
5
  from typing_extensions import NotRequired, TypedDict
6
6
 
7
- from capo_redshift_data.errors import DeserializationError
8
-
9
7
  if TYPE_CHECKING:
10
8
  import capo_redshift_data.types.string
11
9
  import capo_redshift_data.types.uuid
@@ -39,7 +37,7 @@ def deserialize_aws_json_1_1(data: dict) -> GetStatementResultV2Request:
39
37
  if data.get("Id") is not None:
40
38
  out["id"] = data["Id"]
41
39
  else:
42
- raise DeserializationError("GetStatementResultV2Request.id required")
40
+ out["id"] = ""
43
41
  if data.get("NextToken") is not None:
44
42
  out["next_token"] = data["NextToken"]
45
43
  if data.get("WaitTimeSeconds") is not None:
@@ -4,8 +4,6 @@ from typing import TYPE_CHECKING
4
4
 
5
5
  from typing_extensions import NotRequired, TypedDict
6
6
 
7
- from capo_redshift_data.errors import DeserializationError
8
-
9
7
  if TYPE_CHECKING:
10
8
  import capo_redshift_data.types.column_metadata_list
11
9
  import capo_redshift_data.types.formatted_sql_records
@@ -68,7 +66,7 @@ def deserialize_aws_json_1_1(data: dict) -> GetStatementResultV2Response:
68
66
  )
69
67
  )
70
68
  else:
71
- raise DeserializationError("GetStatementResultV2Response.records required")
69
+ out["records"] = []
72
70
  if data.get("ColumnMetadata") is not None:
73
71
  import capo_redshift_data.types.column_metadata_list
74
72
 
@@ -25,7 +25,7 @@ class ListDatabasesRequest(TypedDict, closed=True):
25
25
  """<p>The database user name. This parameter is required when connecting to a cluster as a database user and authenticating using temporary credentials. </p>"""
26
26
  next_token: NotRequired["capo_redshift_data.types.string.String"]
27
27
  """<p>A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned NextToken value in the next NextToken parameter and retrying the command. If the NextToken field is empty, all response records have been retrieved for the request. </p>"""
28
- max_results: "capo_redshift_data.types.page_size.PageSize"
28
+ max_results: NotRequired["capo_redshift_data.types.page_size.PageSize"]
29
29
  """<p>The maximum number of databases to return in the response. If more databases exist than fit in one response, then <code>NextToken</code> is returned to page through the results. </p>"""
30
30
  workgroup_name: NotRequired[
31
31
  "capo_redshift_data.types.workgroup_name_string.WorkgroupNameString"
@@ -46,7 +46,8 @@ def serialize_aws_json_1_1(value: ListDatabasesRequest) -> dict:
46
46
  out["DbUser"] = value["db_user"]
47
47
  if "next_token" in value:
48
48
  out["NextToken"] = value["next_token"]
49
- out["MaxResults"] = value.get("max_results", 0)
49
+ if "max_results" in value:
50
+ out["MaxResults"] = value["max_results"]
50
51
  if "workgroup_name" in value:
51
52
  out["WorkgroupName"] = value["workgroup_name"]
52
53
  return out
@@ -66,8 +67,6 @@ def deserialize_aws_json_1_1(data: dict) -> ListDatabasesRequest:
66
67
  out["next_token"] = data["NextToken"]
67
68
  if data.get("MaxResults") is not None:
68
69
  out["max_results"] = data["MaxResults"]
69
- else:
70
- out["max_results"] = 0
71
70
  if data.get("WorkgroupName") is not None:
72
71
  out["workgroup_name"] = data["WorkgroupName"]
73
72
  return out
@@ -4,8 +4,6 @@ from typing import TYPE_CHECKING
4
4
 
5
5
  from typing_extensions import NotRequired, TypedDict
6
6
 
7
- from capo_redshift_data.errors import DeserializationError
8
-
9
7
  if TYPE_CHECKING:
10
8
  import capo_redshift_data.types.cluster_identifier_string
11
9
  import capo_redshift_data.types.page_size
@@ -31,7 +29,7 @@ class ListSchemasRequest(TypedDict, closed=True):
31
29
  """<p>A pattern to filter results by schema name. Within a schema pattern, "%" means match any substring of 0 or more characters and "_" means match any one character. Only schema name entries matching the search pattern are returned. </p>"""
32
30
  next_token: NotRequired["capo_redshift_data.types.string.String"]
33
31
  """<p>A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned NextToken value in the next NextToken parameter and retrying the command. If the NextToken field is empty, all response records have been retrieved for the request. </p>"""
34
- max_results: "capo_redshift_data.types.page_size.PageSize"
32
+ max_results: NotRequired["capo_redshift_data.types.page_size.PageSize"]
35
33
  """<p>The maximum number of schemas to return in the response. If more schemas exist than fit in one response, then <code>NextToken</code> is returned to page through the results. </p>"""
36
34
  workgroup_name: NotRequired[
37
35
  "capo_redshift_data.types.workgroup_name_string.WorkgroupNameString"
@@ -55,7 +53,8 @@ def serialize_aws_json_1_1(value: ListSchemasRequest) -> dict:
55
53
  out["SchemaPattern"] = value["schema_pattern"]
56
54
  if "next_token" in value:
57
55
  out["NextToken"] = value["next_token"]
58
- out["MaxResults"] = value.get("max_results", 0)
56
+ if "max_results" in value:
57
+ out["MaxResults"] = value["max_results"]
59
58
  if "workgroup_name" in value:
60
59
  out["WorkgroupName"] = value["workgroup_name"]
61
60
  return out
@@ -72,7 +71,7 @@ def deserialize_aws_json_1_1(data: dict) -> ListSchemasRequest:
72
71
  if data.get("Database") is not None:
73
72
  out["database"] = data["Database"]
74
73
  else:
75
- raise DeserializationError("ListSchemasRequest.database required")
74
+ out["database"] = ""
76
75
  if data.get("ConnectedDatabase") is not None:
77
76
  out["connected_database"] = data["ConnectedDatabase"]
78
77
  if data.get("SchemaPattern") is not None:
@@ -81,8 +80,6 @@ def deserialize_aws_json_1_1(data: dict) -> ListSchemasRequest:
81
80
  out["next_token"] = data["NextToken"]
82
81
  if data.get("MaxResults") is not None:
83
82
  out["max_results"] = data["MaxResults"]
84
- else:
85
- out["max_results"] = 0
86
83
  if data.get("WorkgroupName") is not None:
87
84
  out["workgroup_name"] = data["WorkgroupName"]
88
85
  return out
@@ -16,7 +16,9 @@ if TYPE_CHECKING:
16
16
  class ListSessionsRequest(TypedDict, closed=True):
17
17
  next_token: NotRequired["capo_redshift_data.types.string.String"]
18
18
  """<p>A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned NextToken value in the next NextToken parameter and retrying the command. If the NextToken field is empty, all response records have been retrieved for the request.</p>"""
19
- max_results: "capo_redshift_data.types.list_statements_limit.ListStatementsLimit"
19
+ max_results: NotRequired[
20
+ "capo_redshift_data.types.list_statements_limit.ListStatementsLimit"
21
+ ]
20
22
  """<p>The maximum number of sessions to return in the response. If more sessions exist than fit in one response, the operation returns <code>NextToken</code> to paginate the results.</p>"""
21
23
  session_id: NotRequired["capo_redshift_data.types.uuid.UUID"]
22
24
  """<p>The identifier of a specific session to return metadata for. This value is a universally unique identifier (UUID) generated by Amazon Redshift Data API. When you provide <code>SessionId</code>, you can't specify <code>Status</code>, <code>ClusterIdentifier</code>, <code>WorkgroupName</code>, or <code>Database</code>.</p>"""
@@ -43,7 +45,8 @@ def serialize_aws_json_1_1(value: ListSessionsRequest) -> dict:
43
45
  out: dict = {}
44
46
  if "next_token" in value:
45
47
  out["NextToken"] = value["next_token"]
46
- out["MaxResults"] = value.get("max_results", 0)
48
+ if "max_results" in value:
49
+ out["MaxResults"] = value["max_results"]
47
50
  if "session_id" in value:
48
51
  out["SessionId"] = value["session_id"]
49
52
  if "status" in value:
@@ -65,8 +68,6 @@ def deserialize_aws_json_1_1(data: dict) -> ListSessionsRequest:
65
68
  out["next_token"] = data["NextToken"]
66
69
  if data.get("MaxResults") is not None:
67
70
  out["max_results"] = data["MaxResults"]
68
- else:
69
- out["max_results"] = 0
70
71
  if data.get("SessionId") is not None:
71
72
  out["session_id"] = data["SessionId"]
72
73
  if data.get("Status") is not None:
@@ -4,8 +4,6 @@ from typing import TYPE_CHECKING
4
4
 
5
5
  from typing_extensions import NotRequired, TypedDict
6
6
 
7
- from capo_redshift_data.errors import DeserializationError
8
-
9
7
  if TYPE_CHECKING:
10
8
  import capo_redshift_data.types.session_list
11
9
  import capo_redshift_data.types.string
@@ -42,7 +40,7 @@ def deserialize_aws_json_1_1(data: dict) -> ListSessionsResponse:
42
40
  )
43
41
  )
44
42
  else:
45
- raise DeserializationError("ListSessionsResponse.sessions required")
43
+ out["sessions"] = []
46
44
  if data.get("NextToken") is not None:
47
45
  out["next_token"] = data["NextToken"]
48
46
  return out
@@ -16,7 +16,9 @@ if TYPE_CHECKING:
16
16
  class ListStatementsRequest(TypedDict, closed=True):
17
17
  next_token: NotRequired["capo_redshift_data.types.string.String"]
18
18
  """<p>A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned NextToken value in the next NextToken parameter and retrying the command. If the NextToken field is empty, all response records have been retrieved for the request. </p>"""
19
- max_results: "capo_redshift_data.types.list_statements_limit.ListStatementsLimit"
19
+ max_results: NotRequired[
20
+ "capo_redshift_data.types.list_statements_limit.ListStatementsLimit"
21
+ ]
20
22
  """<p>The maximum number of SQL statements to return in the response. If more SQL statements exist than fit in one response, then <code>NextToken</code> is returned to page through the results. </p>"""
21
23
  statement_name: NotRequired[
22
24
  "capo_redshift_data.types.statement_name_string.StatementNameString"
@@ -43,7 +45,8 @@ def serialize_aws_json_1_1(value: ListStatementsRequest) -> dict:
43
45
  out: dict = {}
44
46
  if "next_token" in value:
45
47
  out["NextToken"] = value["next_token"]
46
- out["MaxResults"] = value.get("max_results", 0)
48
+ if "max_results" in value:
49
+ out["MaxResults"] = value["max_results"]
47
50
  if "statement_name" in value:
48
51
  out["StatementName"] = value["statement_name"]
49
52
  if "status" in value:
@@ -65,8 +68,6 @@ def deserialize_aws_json_1_1(data: dict) -> ListStatementsRequest:
65
68
  out["next_token"] = data["NextToken"]
66
69
  if data.get("MaxResults") is not None:
67
70
  out["max_results"] = data["MaxResults"]
68
- else:
69
- out["max_results"] = 0
70
71
  if data.get("StatementName") is not None:
71
72
  out["statement_name"] = data["StatementName"]
72
73
  if data.get("Status") is not None:
@@ -4,8 +4,6 @@ from typing import TYPE_CHECKING
4
4
 
5
5
  from typing_extensions import NotRequired, TypedDict
6
6
 
7
- from capo_redshift_data.errors import DeserializationError
8
-
9
7
  if TYPE_CHECKING:
10
8
  import capo_redshift_data.types.statement_list
11
9
  import capo_redshift_data.types.string
@@ -42,7 +40,7 @@ def deserialize_aws_json_1_1(data: dict) -> ListStatementsResponse:
42
40
  )
43
41
  )
44
42
  else:
45
- raise DeserializationError("ListStatementsResponse.statements required")
43
+ out["statements"] = []
46
44
  if data.get("NextToken") is not None:
47
45
  out["next_token"] = data["NextToken"]
48
46
  return out