Skip to content

Commit 4ba1345

Browse files
m
1 parent 4cdfd7f commit 4ba1345

File tree

10 files changed

+495
-390
lines changed

10 files changed

+495
-390
lines changed

DynamoDbEncryption/runtimes/python/src/aws_database_encryption_sdk/encryptor/resource.py

Lines changed: 66 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,15 @@
33
from aws_database_encryption_sdk.smithygenerated.aws_cryptography_dbencryptionsdk_dynamodb.models import (
44
DynamoDbTablesEncryptionConfig,
55
)
6+
from aws_database_encryption_sdk.smithygenerated.aws_cryptography_dbencryptionsdk_dynamodb_transforms.models import (
7+
BatchGetItemInputTransformInput,
8+
BatchGetItemOutputTransformInput,
9+
BatchWriteItemInputTransformInput,
10+
BatchWriteItemOutputTransformInput,
11+
)
12+
from aws_database_encryption_sdk.internal.resource_to_client import ResourceShapeToClientShapeConverter
13+
from aws_database_encryption_sdk.internal.client_to_resource import ClientShapeToResourceShapeConverter
14+
615

716
class EncryptedTablesCollectionManager:
817

@@ -23,7 +32,10 @@ def __init__(
2332
encryption_config: DynamoDbTablesEncryptionConfig,
2433
):
2534
self._resource = resource
26-
self._encryption_config = DynamoDbTablesEncryptionConfig
35+
self._encryption_config = encryption_config
36+
self._client_shape_to_resource_shape_converter = ClientShapeToResourceShapeConverter()
37+
self._resource_shape_to_client_shape_converter = ResourceShapeToClientShapeConverter()
38+
2739

2840
def Table(self, name, **kwargs):
2941
print("EncryptedResource making EncryptedTable")
@@ -46,4 +58,56 @@ def __getattr__(self, name):
4658
if hasattr(self._resource, name):
4759
return getattr(self._resource, name)
4860
else:
49-
raise AttributeError(f"'{self.__class__.__name__}' object has no attribute '{name}'")
61+
raise AttributeError(f"'{self.__class__.__name__}' object has no attribute '{name}'")
62+
63+
def batch_get_item(self, **kwargs):
64+
input_transform_input = self._resource_shape_to_client_shape_converter.batch_get_item_request(kwargs)
65+
input_transform_output = self._transformer.batch_get_item_input_transform(
66+
BatchGetItemInputTransformInput(
67+
sdk_input = input_transform_input
68+
)
69+
).transformed_input
70+
71+
sdk_input = self._client_shape_to_resource_shape_converter.batch_get_item_request(input_transform_output)
72+
73+
sdk_output = self._resource.batch_get_item(**sdk_input)
74+
75+
output_transform_input = self._resource_shape_to_client_shape_converter.batch_get_item_response(sdk_output)
76+
77+
output_transform_output = self._transformer.batch_get_item_output_transform(
78+
BatchGetItemOutputTransformInput(
79+
original_input = input_transform_input,
80+
sdk_output = output_transform_input,
81+
)
82+
).transformed_output
83+
84+
response = self._client_shape_to_resource_shape_converter.batch_get_item_response(output_transform_output)
85+
response = self._copy_missing_sdk_output_fields_to_response(sdk_output, response, output_transform_output)
86+
87+
return response
88+
89+
def batch_write_item(self, **kwargs):
90+
input_transform_input = self._resource_shape_to_client_shape_converter.batch_write_item_request(kwargs)
91+
input_transform_output = self._transformer.batch_write_item_input_transform(
92+
BatchWriteItemInputTransformInput(
93+
sdk_input = input_transform_input
94+
)
95+
).transformed_input
96+
97+
sdk_input = self._client_shape_to_resource_shape_converter.batch_write_item_request(input_transform_output)
98+
99+
sdk_output = self._resource.batch_write_item(**sdk_input)
100+
101+
output_transform_input = self._resource_shape_to_client_shape_converter.batch_write_item_response(sdk_output)
102+
103+
output_transform_output = self._transformer.batch_write_item_output_transform(
104+
BatchWriteItemOutputTransformInput(
105+
original_input = input_transform_input,
106+
sdk_output = output_transform_input,
107+
)
108+
).transformed_output
109+
110+
response = self._client_shape_to_resource_shape_converter.batch_write_item_response(output_transform_output)
111+
response = self._copy_missing_sdk_output_fields_to_response(sdk_output, response, output_transform_output)
112+
113+
return response

0 commit comments

Comments
 (0)