diff --git a/.github/actions/polymorph_codegen/action.yml b/.github/actions/polymorph_codegen/action.yml
index 302523dae..b47e4bf57 100644
--- a/.github/actions/polymorph_codegen/action.yml
+++ b/.github/actions/polymorph_codegen/action.yml
@@ -141,6 +141,12 @@ runs:
       run: |
         make polymorph_dotnet ${{ steps.dependencies.outputs.PROJECT_DEPENDENCIES }}
 
+    - name: Regenerate Go code using smithy-dafny
+      working-directory: ./${{ inputs.library }}
+      shell: bash
+      run: |
+        make polymorph_go
+
     - name: Check regenerated code against commited code
       # Composite action inputs seem to not actually support booleans properly for some reason
       if: inputs.diff-generated-code == 'true'
diff --git a/.github/workflows/ci_codegen.yml b/.github/workflows/ci_codegen.yml
index 311559b04..0b6e55f68 100644
--- a/.github/workflows/ci_codegen.yml
+++ b/.github/workflows/ci_codegen.yml
@@ -18,6 +18,7 @@ jobs:
         # in this workflow
         dotnet-version: ["6.0.x"]
         os: [ubuntu-22.04]
+        go-version: [1.23]
     runs-on: ${{ matrix.os }}
     defaults:
       run:
@@ -48,6 +49,15 @@ jobs:
         with:
           dotnet-version: ${{ matrix.dotnet-version }}
 
+      - name: Install Go
+        uses: actions/setup-go@v5
+        with:
+          go-version: ${{ matrix.go-version }}
+
+      - name: Install Go imports
+        run: |
+          go install golang.org/x/tools/cmd/goimports@latest
+
       - name: Create temporary global.json
         run: echo '{"sdk":{"rollForward":"latestFeature","version":"6.0.0"}}' > ./global.json
 
diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/WrappedAwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorService/shim.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/WrappedAwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorService/shim.go
new file mode 100644
index 000000000..9018b4bb4
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/WrappedAwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorService/shim.go
@@ -0,0 +1,43 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package WrappedAwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorService
+
+import (
+	"context"
+
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated"
+)
+
+type Shim struct {
+	AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.IDynamoDbItemEncryptorClient
+	client *awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated.Client
+}
+
+func (_static *CompanionStruct_Default___) WrappedDynamoDbItemEncryptor(inputConfig AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DynamoDbItemEncryptorConfig) Wrappers.Result {
+	var nativeConfig = awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated.DynamoDbItemEncryptorConfig_FromDafny(inputConfig)
+	var nativeClient, nativeError = awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated.NewClient(nativeConfig)
+	if nativeError != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_Opaque_(nativeError))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(&Shim{client: nativeClient})
+}
+
+func (shim *Shim) EncryptItem(input AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated.EncryptItemInput_FromDafny(input)
+	var native_response, native_error = shim.client.EncryptItem(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated.EncryptItemOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) DecryptItem(input AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated.DecryptItemInput_FromDafny(input)
+	var native_response, native_error = shim.client.DecryptItem(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated.DecryptItemOutput_ToDafny(*native_response))
+}
diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/WrappedAwsCryptographyDbEncryptionSdkDynamoDbService/shim.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/WrappedAwsCryptographyDbEncryptionSdkDynamoDbService/shim.go
new file mode 100644
index 000000000..0124631c5
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/WrappedAwsCryptographyDbEncryptionSdkDynamoDbService/shim.go
@@ -0,0 +1,43 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package WrappedAwsCryptographyDbEncryptionSdkDynamoDbService
+
+import (
+	"context"
+
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygenerated"
+)
+
+type Shim struct {
+	AwsCryptographyDbEncryptionSdkDynamoDbTypes.IDynamoDbEncryptionClient
+	client *awscryptographydbencryptionsdkdynamodbsmithygenerated.Client
+}
+
+func (_static *CompanionStruct_Default___) WrappedDynamoDbEncryption(inputConfig AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbEncryptionConfig) Wrappers.Result {
+	var nativeConfig = awscryptographydbencryptionsdkdynamodbsmithygenerated.DynamoDbEncryptionConfig_FromDafny(inputConfig)
+	var nativeClient, nativeError = awscryptographydbencryptionsdkdynamodbsmithygenerated.NewClient(nativeConfig)
+	if nativeError != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_Opaque_(nativeError))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(&Shim{client: nativeClient})
+}
+
+func (shim *Shim) CreateDynamoDbEncryptionBranchKeyIdSupplier(input AwsCryptographyDbEncryptionSdkDynamoDbTypes.CreateDynamoDbEncryptionBranchKeyIdSupplierInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbsmithygenerated.CreateDynamoDbEncryptionBranchKeyIdSupplierInput_FromDafny(input)
+	var native_response, native_error = shim.client.CreateDynamoDbEncryptionBranchKeyIdSupplier(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbsmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbsmithygenerated.CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) GetEncryptedDataKeyDescription(input AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbsmithygenerated.GetEncryptedDataKeyDescriptionInput_FromDafny(input)
+	var native_response, native_error = shim.client.GetEncryptedDataKeyDescription(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbsmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbsmithygenerated.GetEncryptedDataKeyDescriptionOutput_ToDafny(*native_response))
+}
diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/WrappedAwsCryptographyDbEncryptionSdkDynamoDbTransformsService/shim.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/WrappedAwsCryptographyDbEncryptionSdkDynamoDbTransformsService/shim.go
new file mode 100644
index 000000000..41c6a6043
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/WrappedAwsCryptographyDbEncryptionSdkDynamoDbTransformsService/shim.go
@@ -0,0 +1,268 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package WrappedAwsCryptographyDbEncryptionSdkDynamoDbTransformsService
+
+import (
+	"context"
+
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbtransformssmithygenerated"
+)
+
+type Shim struct {
+	AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.IDynamoDbEncryptionTransformsClient
+	client *awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Client
+}
+
+func (_static *CompanionStruct_Default___) WrappedDynamoDbEncryptionTransforms(inputConfig AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTablesEncryptionConfig) Wrappers.Result {
+	var nativeConfig = awscryptographydbencryptionsdkdynamodbsmithygenerated.awscryptographydbencryptionsdkdynamodbsmithygenerated.DynamoDbTablesEncryptionConfig_FromDafny(inputConfig)
+	var nativeClient, nativeError = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.NewClient(nativeConfig)
+	if nativeError != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_Opaque_(nativeError))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(&Shim{client: nativeClient})
+}
+
+func (shim *Shim) PutItemInputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemInputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.PutItemInputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.PutItemInputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.PutItemInputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) PutItemOutputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemOutputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.PutItemOutputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.PutItemOutputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.PutItemOutputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) GetItemInputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemInputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.GetItemInputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.GetItemInputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.GetItemInputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) GetItemOutputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemOutputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.GetItemOutputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.GetItemOutputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.GetItemOutputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) BatchWriteItemInputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemInputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.BatchWriteItemInputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.BatchWriteItemInputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.BatchWriteItemInputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) BatchWriteItemOutputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemOutputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.BatchWriteItemOutputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.BatchWriteItemOutputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.BatchWriteItemOutputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) BatchGetItemInputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemInputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.BatchGetItemInputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.BatchGetItemInputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.BatchGetItemInputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) BatchGetItemOutputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemOutputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.BatchGetItemOutputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.BatchGetItemOutputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.BatchGetItemOutputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) ScanInputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanInputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.ScanInputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.ScanInputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.ScanInputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) ScanOutputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanOutputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.ScanOutputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.ScanOutputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.ScanOutputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) QueryInputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryInputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.QueryInputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.QueryInputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.QueryInputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) QueryOutputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryOutputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.QueryOutputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.QueryOutputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.QueryOutputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) TransactWriteItemsInputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsInputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.TransactWriteItemsInputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.TransactWriteItemsInputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.TransactWriteItemsInputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) TransactWriteItemsOutputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsOutputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.TransactWriteItemsOutputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.TransactWriteItemsOutputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.TransactWriteItemsOutputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) UpdateItemInputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemInputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.UpdateItemInputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.UpdateItemInputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.UpdateItemInputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) UpdateItemOutputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemOutputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.UpdateItemOutputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.UpdateItemOutputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.UpdateItemOutputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) DeleteItemInputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemInputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.DeleteItemInputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.DeleteItemInputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.DeleteItemInputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) DeleteItemOutputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemOutputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.DeleteItemOutputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.DeleteItemOutputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.DeleteItemOutputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) TransactGetItemsInputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsInputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.TransactGetItemsInputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.TransactGetItemsInputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.TransactGetItemsInputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) TransactGetItemsOutputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsOutputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.TransactGetItemsOutputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.TransactGetItemsOutputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.TransactGetItemsOutputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) ExecuteStatementInputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementInputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.ExecuteStatementInputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.ExecuteStatementInputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.ExecuteStatementInputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) ExecuteStatementOutputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementOutputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.ExecuteStatementOutputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.ExecuteStatementOutputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.ExecuteStatementOutputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) BatchExecuteStatementInputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementInputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.BatchExecuteStatementInputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.BatchExecuteStatementInputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.BatchExecuteStatementInputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) BatchExecuteStatementOutputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementOutputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.BatchExecuteStatementOutputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.BatchExecuteStatementOutputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.BatchExecuteStatementOutputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) ExecuteTransactionInputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionInputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.ExecuteTransactionInputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.ExecuteTransactionInputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.ExecuteTransactionInputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) ExecuteTransactionOutputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionOutputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.ExecuteTransactionOutputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.ExecuteTransactionOutputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.ExecuteTransactionOutputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) ResolveAttributes(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ResolveAttributesInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.ResolveAttributesInput_FromDafny(input)
+	var native_response, native_error = shim.client.ResolveAttributes(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.ResolveAttributesOutput_ToDafny(*native_response))
+}
diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/WrappedAwsCryptographyDbEncryptionSdkStructuredEncryptionService/shim.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/WrappedAwsCryptographyDbEncryptionSdkStructuredEncryptionService/shim.go
new file mode 100644
index 000000000..6d2ddf5e4
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/WrappedAwsCryptographyDbEncryptionSdkStructuredEncryptionService/shim.go
@@ -0,0 +1,70 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package WrappedAwsCryptographyDbEncryptionSdkStructuredEncryptionService
+
+import (
+	"context"
+
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated"
+)
+
+type Shim struct {
+	AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.IStructuredEncryptionClient
+	client *awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.Client
+}
+
+func (_static *CompanionStruct_Default___) WrappedStructuredEncryption(inputConfig AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredEncryptionConfig) Wrappers.Result {
+	var nativeConfig = awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.StructuredEncryptionConfig_FromDafny(inputConfig)
+	var nativeClient, nativeError = awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.NewClient(nativeConfig)
+	if nativeError != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_Error_.Create_Opaque_(nativeError))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(&Shim{client: nativeClient})
+}
+
+func (shim *Shim) EncryptStructure(input AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptStructureInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.EncryptStructureInput_FromDafny(input)
+	var native_response, native_error = shim.client.EncryptStructure(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.EncryptStructureOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) DecryptStructure(input AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptStructureInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.DecryptStructureInput_FromDafny(input)
+	var native_response, native_error = shim.client.DecryptStructure(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.DecryptStructureOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) EncryptPathStructure(input AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptPathStructureInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.EncryptPathStructureInput_FromDafny(input)
+	var native_response, native_error = shim.client.EncryptPathStructure(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.EncryptPathStructureOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) DecryptPathStructure(input AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptPathStructureInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.DecryptPathStructureInput_FromDafny(input)
+	var native_response, native_error = shim.client.DecryptPathStructure(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.DecryptPathStructureOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) ResolveAuthActions(input AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ResolveAuthActionsInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.ResolveAuthActionsInput_FromDafny(input)
+	var native_response, native_error = shim.client.ResolveAuthActions(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.ResolveAuthActionsOutput_ToDafny(*native_response))
+}
diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated/api_client.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated/api_client.go
new file mode 100644
index 000000000..00c350137
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated/api_client.go
@@ -0,0 +1,68 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated
+
+import (
+	"context"
+
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/DynamoDbItemEncryptor"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes"
+)
+
+type Client struct {
+	DafnyClient AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.IDynamoDbItemEncryptorClient
+}
+
+func NewClient(clientConfig awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DynamoDbItemEncryptorConfig) (*Client, error) {
+	var dafnyConfig = DynamoDbItemEncryptorConfig_ToDafny(clientConfig)
+	var dafny_response = DynamoDbItemEncryptor.Companion_Default___.DynamoDbItemEncryptor(dafnyConfig)
+	if dafny_response.Is_Failure() {
+		panic("Client construction failed. This should never happen")
+	}
+	var dafnyClient = dafny_response.Extract().(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.IDynamoDbItemEncryptorClient)
+	client := &Client{dafnyClient}
+	return client, nil
+}
+
+func (client *Client) EncryptItem(ctx context.Context, params awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.EncryptItemInput) (*awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.EncryptItemOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemInput = EncryptItemInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.EncryptItem(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = EncryptItemOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) DecryptItem(ctx context.Context, params awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DecryptItemInput) (*awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DecryptItemOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemInput = DecryptItemInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.DecryptItem(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = DecryptItemOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemOutput))
+	return &native_response, nil
+
+}
diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated/to_dafny.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated/to_dafny.go
new file mode 100644
index 000000000..b153d67b2
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated/to_dafny.go
@@ -0,0 +1,437 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated
+
+import (
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/comamazonawsdynamodbsmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/awscryptographyprimitivessmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/awscryptographyprimitivessmithygeneratedtypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygenerated"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes"
+	dynamodbtypes "github.com/aws/aws-sdk-go-v2/service/dynamodb/types"
+	"github.com/aws/smithy-go"
+	"github.com/dafny-lang/DafnyRuntimeGo/v4/dafny"
+)
+
+func DecryptItemInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DecryptItemInput) AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_DecryptItemInput_.Create_DecryptItemInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemInput_encryptedItem_ToDafny(nativeInput.EncryptedItem))
+	}()
+
+}
+
+func DecryptItemOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DecryptItemOutput) AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_DecryptItemOutput_.Create_DecryptItemOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemOutput_plaintextItem_ToDafny(nativeOutput.PlaintextItem), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemOutput_parsedHeader_ToDafny(nativeOutput.ParsedHeader))
+	}()
+
+}
+
+func EncryptItemInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.EncryptItemInput) AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_EncryptItemInput_.Create_EncryptItemInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemInput_plaintextItem_ToDafny(nativeInput.PlaintextItem))
+	}()
+
+}
+
+func EncryptItemOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.EncryptItemOutput) AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_EncryptItemOutput_.Create_EncryptItemOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemOutput_encryptedItem_ToDafny(nativeOutput.EncryptedItem), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemOutput_parsedHeader_ToDafny(nativeOutput.ParsedHeader))
+	}()
+
+}
+
+func DynamoDbItemEncryptorException_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DynamoDbItemEncryptorException) AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_DynamoDbItemEncryptorException_(Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorException_message_ToDafny(nativeInput.Message))
+	}()
+
+}
+
+func CollectionOfErrors_Input_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.CollectionOfErrors) AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error {
+	var e []interface{}
+	for _, i2 := range nativeInput.ListOfErrors {
+		e = append(e, Error_ToDafny(i2))
+	}
+	return AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_CollectionOfErrors_(dafny.SeqOf(e...), func() dafny.Sequence {
+		res, err := UTF8.DecodeFromNativeGoByteArray([]byte(nativeInput.Message))
+		if err != nil {
+			panic("invalid utf8 input provided")
+		}
+		return res
+	}())
+}
+func OpaqueError_Input_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.OpaqueError) AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error {
+	return AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_Opaque_(nativeInput.ErrObject)
+}
+
+func Error_ToDafny(err error) AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error {
+	switch err.(type) {
+	// Service Errors
+	case awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DynamoDbItemEncryptorException:
+		return DynamoDbItemEncryptorException_ToDafny(err.(awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DynamoDbItemEncryptorException))
+
+	//DependentErrors
+	case awscryptographyprimitivessmithygeneratedtypes.AwsCryptographicPrimitivesBaseException:
+		return AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(awscryptographyprimitivessmithygenerated.Error_ToDafny(err))
+
+	case awscryptographymaterialproviderssmithygeneratedtypes.AwsCryptographicMaterialProvidersBaseException:
+		return AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_AwsCryptographyMaterialProviders_(awscryptographymaterialproviderssmithygenerated.Error_ToDafny(err))
+
+	case awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredEncryptionBaseException:
+		return AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkStructuredEncryption_(awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.Error_ToDafny(err))
+
+	case awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbEncryptionBaseException:
+		return AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkDynamoDb_(awscryptographydbencryptionsdkdynamodbsmithygenerated.Error_ToDafny(err))
+
+	case *smithy.OperationError:
+		if err.(*smithy.OperationError).Service() == "DynamoDB" {
+			DynamoDBError := comamazonawsdynamodbsmithygenerated.Error_ToDafny(err)
+			return AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_ComAmazonawsDynamodb_(DynamoDBError)
+		}
+		return AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_Opaque_(err)
+
+	case smithy.APIError:
+		DynamoDBError := comamazonawsdynamodbsmithygenerated.Error_ToDafny(err)
+		if !DynamoDBError.Is_OpaqueWithText() {
+			return AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_ComAmazonawsDynamodb_(DynamoDBError)
+		}
+		return AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_Opaque_(err)
+
+	//Unmodelled Errors
+	case awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.CollectionOfErrors:
+		return CollectionOfErrors_Input_ToDafny(err.(awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.CollectionOfErrors))
+
+	default:
+		error, ok := err.(awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.OpaqueError)
+		if !ok {
+			panic("Error is not an OpaqueError")
+		}
+		return OpaqueError_Input_ToDafny(error)
+	}
+}
+
+func DynamoDbItemEncryptorConfig_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DynamoDbItemEncryptorConfig) AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DynamoDbItemEncryptorConfig {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DynamoDbItemEncryptorConfig {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_DynamoDbItemEncryptorConfig_.Create_DynamoDbItemEncryptorConfig_(Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_logicalTableName_ToDafny(nativeInput.LogicalTableName), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_partitionKeyName_ToDafny(nativeInput.PartitionKeyName), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_sortKeyName_ToDafny(nativeInput.SortKeyName), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_attributeActionsOnEncrypt_ToDafny(nativeInput.AttributeActionsOnEncrypt), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_allowedUnsignedAttributes_ToDafny(nativeInput.AllowedUnsignedAttributes), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_allowedUnsignedAttributePrefix_ToDafny(nativeInput.AllowedUnsignedAttributePrefix), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_algorithmSuiteId_ToDafny(nativeInput.AlgorithmSuiteId), func() Wrappers.Option {
+			if (nativeInput.Keyring) == nil {
+				return Wrappers.Companion_Option_.Create_None_()
+			}
+			return Wrappers.Companion_Option_.Create_Some_(awscryptographymaterialproviderssmithygenerated.Keyring_ToDafny(nativeInput.Keyring))
+		}(), func() Wrappers.Option {
+			if (nativeInput.Cmm) == nil {
+				return Wrappers.Companion_Option_.Create_None_()
+			}
+			return Wrappers.Companion_Option_.Create_Some_(awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsManager_ToDafny(nativeInput.Cmm))
+		}(), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_legacyOverride_ToDafny(nativeInput.LegacyOverride), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_plaintextOverride_ToDafny(nativeInput.PlaintextOverride))
+	}()
+
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemInput_encryptedItem_ToDafny(input map[string]dynamodbtypes.AttributeValue) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_key_ToDafny(key), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemOutput_plaintextItem_ToDafny(input map[string]dynamodbtypes.AttributeValue) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_key_ToDafny(key), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemOutput_parsedHeader_ToDafny(input *awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.ParsedHeader) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_ParsedHeader_.Create_ParsedHeader_(Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_attributeActionsOnEncrypt_ToDafny(input.AttributeActionsOnEncrypt), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_algorithmSuiteId_ToDafny(input.AlgorithmSuiteId), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptedDataKeys_ToDafny(input.EncryptedDataKeys), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_storedEncryptionContext_ToDafny(input.StoredEncryptionContext), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptionContext_ToDafny(input.EncryptionContext), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_selectorContext_ToDafny(input.SelectorContext)))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_attributeActionsOnEncrypt_ToDafny(input map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(awscryptographydbencryptionsdkdynamodbsmithygenerated.Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_key_ToDafny(key), awscryptographydbencryptionsdkdynamodbsmithygenerated.Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_algorithmSuiteId_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId) AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId {
+	return func() AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId {
+
+		var index int
+		for _, enumVal := range input.Values() {
+			index++
+			if enumVal == input {
+				break
+			}
+			if index == len(input.Values()) {
+				panic("Input value did not found in enum values")
+			}
+
+		}
+		var enum interface{}
+		for allEnums, i := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_DBEAlgorithmSuiteId_{}.AllSingletonConstructors()), 0; i < index; i++ {
+			var ok bool
+			enum, ok = allEnums()
+			if !ok {
+				break
+			}
+		}
+		return enum.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptedDataKeys_ToDafny(input []awscryptographymaterialproviderssmithygeneratedtypes.EncryptedDataKey) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptedDataKeyList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return dafny.SeqOf(fieldValue...)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_storedEncryptionContext_ToDafny(input map[string]string) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_key_ToDafny(key), awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptionContext_ToDafny(input map[string]string) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_key_ToDafny(key), awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_selectorContext_ToDafny(input map[string]dynamodbtypes.AttributeValue) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_Key_key_ToDafny(key), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_Key_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemInput_plaintextItem_ToDafny(input map[string]dynamodbtypes.AttributeValue) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_key_ToDafny(key), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemOutput_encryptedItem_ToDafny(input map[string]dynamodbtypes.AttributeValue) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_key_ToDafny(key), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemOutput_parsedHeader_ToDafny(input *awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.ParsedHeader) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_ParsedHeader_.Create_ParsedHeader_(Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_attributeActionsOnEncrypt_ToDafny(input.AttributeActionsOnEncrypt), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_algorithmSuiteId_ToDafny(input.AlgorithmSuiteId), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptedDataKeys_ToDafny(input.EncryptedDataKeys), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_storedEncryptionContext_ToDafny(input.StoredEncryptionContext), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptionContext_ToDafny(input.EncryptionContext), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_selectorContext_ToDafny(input.SelectorContext)))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorException_message_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_logicalTableName_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_partitionKeyName_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_sortKeyName_ToDafny(input *string) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_attributeActionsOnEncrypt_ToDafny(input map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(awscryptographydbencryptionsdkdynamodbsmithygenerated.Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_key_ToDafny(key), awscryptographydbencryptionsdkdynamodbsmithygenerated.Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_allowedUnsignedAttributes_ToDafny(input []string) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeNameList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_allowedUnsignedAttributePrefix_ToDafny(input *string) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_algorithmSuiteId_ToDafny(input *awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		var index int
+		for _, enumVal := range input.Values() {
+			index++
+			if enumVal == *input {
+				break
+			}
+
+		}
+		var enum interface{}
+		for allEnums, i := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_DBEAlgorithmSuiteId_{}.AllSingletonConstructors()), 0; i < index; i++ {
+			var ok bool
+			enum, ok = allEnums()
+			if !ok {
+				break
+			}
+		}
+		return Wrappers.Companion_Option_.Create_Some_(enum.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_legacyOverride_ToDafny(input *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyOverride) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_LegacyOverride_.Create_LegacyOverride_(awscryptographydbencryptionsdkdynamodbsmithygenerated.Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_policy_ToDafny(input.Policy), awscryptographydbencryptionsdkdynamodbsmithygenerated.LegacyDynamoDbEncryptor_ToDafny(input.Encryptor), awscryptographydbencryptionsdkdynamodbsmithygenerated.Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_attributeActionsOnEncrypt_ToDafny(input.AttributeActionsOnEncrypt), awscryptographydbencryptionsdkdynamodbsmithygenerated.Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_defaultAttributeFlag_ToDafny(input.DefaultAttributeFlag)))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_plaintextOverride_ToDafny(input *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PlaintextOverride) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		var index int
+		for _, enumVal := range input.Values() {
+			index++
+			if enumVal == *input {
+				break
+			}
+
+		}
+		var enum interface{}
+		for allEnums, i := dafny.Iterate(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_PlaintextOverride_{}.AllSingletonConstructors()), 0; i < index; i++ {
+			var ok bool
+			enum, ok = allEnums()
+			if !ok {
+				break
+			}
+		}
+		return Wrappers.Companion_Option_.Create_Some_(enum.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride))
+	}()
+}
diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated/to_native.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated/to_native.go
new file mode 100644
index 000000000..8262392cc
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated/to_native.go
@@ -0,0 +1,447 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated
+
+import (
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/comamazonawsdynamodbsmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/awscryptographyprimitivessmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygenerated"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes"
+	dynamodbtypes "github.com/aws/aws-sdk-go-v2/service/dynamodb/types"
+	"github.com/dafny-lang/DafnyRuntimeGo/v4/dafny"
+)
+
+func DecryptItemInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemInput) awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DecryptItemInput {
+
+	return awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DecryptItemInput{EncryptedItem: Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemInput_encryptedItem_FromDafny(dafnyInput.Dtor_encryptedItem())}
+
+}
+
+func DecryptItemOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemOutput) awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DecryptItemOutput {
+
+	return awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DecryptItemOutput{PlaintextItem: Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemOutput_plaintextItem_FromDafny(dafnyOutput.Dtor_plaintextItem()),
+		ParsedHeader: Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemOutput_parsedHeader_FromDafny(dafnyOutput.Dtor_parsedHeader().UnwrapOr(nil)),
+	}
+
+}
+
+func EncryptItemInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemInput) awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.EncryptItemInput {
+
+	return awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.EncryptItemInput{PlaintextItem: Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemInput_plaintextItem_FromDafny(dafnyInput.Dtor_plaintextItem())}
+
+}
+
+func EncryptItemOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemOutput) awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.EncryptItemOutput {
+
+	return awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.EncryptItemOutput{EncryptedItem: Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemOutput_encryptedItem_FromDafny(dafnyOutput.Dtor_encryptedItem()),
+		ParsedHeader: Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemOutput_parsedHeader_FromDafny(dafnyOutput.Dtor_parsedHeader().UnwrapOr(nil)),
+	}
+
+}
+
+func DynamoDbItemEncryptorException_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error) awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DynamoDbItemEncryptorException {
+	return awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DynamoDbItemEncryptorException{Message: Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorException_message_FromDafny(dafnyOutput.Dtor_message())}
+
+}
+
+func CollectionOfErrors_Output_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error) awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.CollectionOfErrors {
+	listOfErrors := dafnyOutput.Dtor_list()
+	message := dafnyOutput.Dtor_message()
+	t := awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.CollectionOfErrors{}
+	for i := dafny.Iterate(listOfErrors); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		err := val.(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error)
+		t.ListOfErrors = append(t.ListOfErrors, Error_FromDafny(err))
+
+	}
+	t.Message = func() string {
+		a := UTF8.Encode(message.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+		return s
+	}()
+	return t
+}
+func OpaqueError_Output_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error) awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.OpaqueError {
+	return awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.OpaqueError{
+		ErrObject: dafnyOutput.Dtor_obj(),
+	}
+}
+
+func Error_FromDafny(err AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error) error {
+	// Service Errors
+	if err.Is_DynamoDbItemEncryptorException() {
+		return DynamoDbItemEncryptorException_FromDafny(err)
+	}
+
+	//DependentErrors
+	if err.Is_AwsCryptographyPrimitives() {
+		return awscryptographyprimitivessmithygenerated.Error_FromDafny(err.Dtor_AwsCryptographyPrimitives())
+	}
+
+	if err.Is_ComAmazonawsDynamodb() {
+		return comamazonawsdynamodbsmithygenerated.Error_FromDafny(err.Dtor_ComAmazonawsDynamodb())
+	}
+
+	if err.Is_AwsCryptographyMaterialProviders() {
+		return awscryptographymaterialproviderssmithygenerated.Error_FromDafny(err.Dtor_AwsCryptographyMaterialProviders())
+	}
+
+	if err.Is_AwsCryptographyDbEncryptionSdkStructuredEncryption() {
+		return awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.Error_FromDafny(err.Dtor_AwsCryptographyDbEncryptionSdkStructuredEncryption())
+	}
+
+	if err.Is_AwsCryptographyDbEncryptionSdkDynamoDb() {
+		return awscryptographydbencryptionsdkdynamodbsmithygenerated.Error_FromDafny(err.Dtor_AwsCryptographyDbEncryptionSdkDynamoDb())
+	}
+
+	//Unmodelled Errors
+	if err.Is_CollectionOfErrors() {
+		return CollectionOfErrors_Output_FromDafny(err)
+	}
+
+	return OpaqueError_Output_FromDafny(err)
+}
+
+func DynamoDbItemEncryptorConfig_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DynamoDbItemEncryptorConfig) awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DynamoDbItemEncryptorConfig {
+	return awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DynamoDbItemEncryptorConfig{LogicalTableName: Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_logicalTableName_FromDafny(dafnyOutput.Dtor_logicalTableName()),
+		PartitionKeyName:               Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_partitionKeyName_FromDafny(dafnyOutput.Dtor_partitionKeyName()),
+		SortKeyName:                    Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_sortKeyName_FromDafny(dafnyOutput.Dtor_sortKeyName().UnwrapOr(nil)),
+		AttributeActionsOnEncrypt:      Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_attributeActionsOnEncrypt_FromDafny(dafnyOutput.Dtor_attributeActionsOnEncrypt()),
+		AllowedUnsignedAttributes:      Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_allowedUnsignedAttributes_FromDafny(dafnyOutput.Dtor_allowedUnsignedAttributes().UnwrapOr(nil)),
+		AllowedUnsignedAttributePrefix: Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_allowedUnsignedAttributePrefix_FromDafny(dafnyOutput.Dtor_allowedUnsignedAttributePrefix().UnwrapOr(nil)),
+		AlgorithmSuiteId:               Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_algorithmSuiteId_FromDafny(dafnyOutput.Dtor_algorithmSuiteId().UnwrapOr(nil)),
+		Keyring: func() awscryptographymaterialproviderssmithygeneratedtypes.IKeyring {
+			if dafnyOutput.Dtor_keyring().UnwrapOr(nil) == nil {
+				return nil
+			}
+			return awscryptographymaterialproviderssmithygenerated.Keyring_FromDafny(dafnyOutput.Dtor_keyring().UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.IKeyring))
+		}(),
+		Cmm: func() awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsManager {
+			if dafnyOutput.Dtor_cmm().UnwrapOr(nil) == nil {
+				return nil
+			}
+			return awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsManager_FromDafny(dafnyOutput.Dtor_cmm().UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager))
+		}(),
+		LegacyOverride:    Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_legacyOverride_FromDafny(dafnyOutput.Dtor_legacyOverride().UnwrapOr(nil)),
+		PlaintextOverride: Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_plaintextOverride_FromDafny(dafnyOutput.Dtor_plaintextOverride().UnwrapOr(nil)),
+	}
+
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemInput_encryptedItem_FromDafny(input interface{}) map[string]dynamodbtypes.AttributeValue {
+	var m map[string]dynamodbtypes.AttributeValue = make(map[string]dynamodbtypes.AttributeValue)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemOutput_plaintextItem_FromDafny(input interface{}) map[string]dynamodbtypes.AttributeValue {
+	var m map[string]dynamodbtypes.AttributeValue = make(map[string]dynamodbtypes.AttributeValue)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemOutput_parsedHeader_FromDafny(input interface{}) *awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.ParsedHeader {
+	if input == nil {
+		return nil
+	}
+	return &awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.ParsedHeader{AttributeActionsOnEncrypt: Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_attributeActionsOnEncrypt_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.ParsedHeader).Dtor_attributeActionsOnEncrypt()),
+		AlgorithmSuiteId:        Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_algorithmSuiteId_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.ParsedHeader).Dtor_algorithmSuiteId()),
+		EncryptedDataKeys:       Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptedDataKeys_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.ParsedHeader).Dtor_encryptedDataKeys()),
+		StoredEncryptionContext: Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_storedEncryptionContext_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.ParsedHeader).Dtor_storedEncryptionContext()),
+		EncryptionContext:       Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptionContext_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.ParsedHeader).Dtor_encryptionContext()),
+		SelectorContext:         Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_selectorContext_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.ParsedHeader).Dtor_selectorContext()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_attributeActionsOnEncrypt_FromDafny(input interface{}) map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction {
+	var m map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction = make(map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[awscryptographydbencryptionsdkdynamodbsmithygenerated.Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = awscryptographydbencryptionsdkdynamodbsmithygenerated.Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_algorithmSuiteId_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId {
+	return func() awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId {
+		var u awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId
+		inputEnum := input.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId)
+		index := -1
+		for allEnums := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_DBEAlgorithmSuiteId_{}.AllSingletonConstructors()); ; {
+			enum, ok := allEnums()
+			if ok {
+				index++
+				if enum.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId).Equals(inputEnum) {
+					break
+				}
+			}
+		}
+
+		return u.Values()[index]
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptedDataKeys_FromDafny(input interface{}) []awscryptographymaterialproviderssmithygeneratedtypes.EncryptedDataKey {
+	fieldValue := make([]awscryptographymaterialproviderssmithygeneratedtypes.EncryptedDataKey, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptedDataKeyList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_storedEncryptionContext_FromDafny(input interface{}) map[string]string {
+	var m map[string]string = make(map[string]string)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptionContext_FromDafny(input interface{}) map[string]string {
+	var m map[string]string = make(map[string]string)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_selectorContext_FromDafny(input interface{}) map[string]dynamodbtypes.AttributeValue {
+	var m map[string]dynamodbtypes.AttributeValue = make(map[string]dynamodbtypes.AttributeValue)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_Key_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_Key_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemInput_plaintextItem_FromDafny(input interface{}) map[string]dynamodbtypes.AttributeValue {
+	var m map[string]dynamodbtypes.AttributeValue = make(map[string]dynamodbtypes.AttributeValue)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemOutput_encryptedItem_FromDafny(input interface{}) map[string]dynamodbtypes.AttributeValue {
+	var m map[string]dynamodbtypes.AttributeValue = make(map[string]dynamodbtypes.AttributeValue)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemOutput_parsedHeader_FromDafny(input interface{}) *awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.ParsedHeader {
+	if input == nil {
+		return nil
+	}
+	return &awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.ParsedHeader{AttributeActionsOnEncrypt: Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_attributeActionsOnEncrypt_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.ParsedHeader).Dtor_attributeActionsOnEncrypt()),
+		AlgorithmSuiteId:        Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_algorithmSuiteId_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.ParsedHeader).Dtor_algorithmSuiteId()),
+		EncryptedDataKeys:       Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptedDataKeys_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.ParsedHeader).Dtor_encryptedDataKeys()),
+		StoredEncryptionContext: Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_storedEncryptionContext_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.ParsedHeader).Dtor_storedEncryptionContext()),
+		EncryptionContext:       Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptionContext_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.ParsedHeader).Dtor_encryptionContext()),
+		SelectorContext:         Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_selectorContext_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.ParsedHeader).Dtor_selectorContext()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorException_message_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_logicalTableName_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_partitionKeyName_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_sortKeyName_FromDafny(input interface{}) *string {
+	return func() *string {
+		if input == nil {
+			return nil
+		}
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return &s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_attributeActionsOnEncrypt_FromDafny(input interface{}) map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction {
+	var m map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction = make(map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[awscryptographydbencryptionsdkdynamodbsmithygenerated.Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = awscryptographydbencryptionsdkdynamodbsmithygenerated.Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_allowedUnsignedAttributes_FromDafny(input interface{}) []string {
+	if input == nil {
+		return nil
+	}
+	fieldValue := make([]string, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeNameList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_allowedUnsignedAttributePrefix_FromDafny(input interface{}) *string {
+	return func() *string {
+		if input == nil {
+			return nil
+		}
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return &s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_algorithmSuiteId_FromDafny(input interface{}) *awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId {
+	return func() *awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId {
+		var u awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId
+		if input == nil {
+			return nil
+		}
+		inputEnum := input.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId)
+		index := -1
+		for allEnums := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_DBEAlgorithmSuiteId_{}.AllSingletonConstructors()); ; {
+			enum, ok := allEnums()
+			if ok {
+				index++
+				if enum.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId).Equals(inputEnum) {
+					break
+				}
+			}
+		}
+
+		return &u.Values()[index]
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_legacyOverride_FromDafny(input interface{}) *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyOverride {
+	if input == nil {
+		return nil
+	}
+	return &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyOverride{Policy: awscryptographydbencryptionsdkdynamodbsmithygenerated.Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_policy_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyOverride).Dtor_policy()),
+		Encryptor:                 awscryptographydbencryptionsdkdynamodbsmithygenerated.LegacyDynamoDbEncryptor_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyOverride).Dtor_encryptor()),
+		AttributeActionsOnEncrypt: awscryptographydbencryptionsdkdynamodbsmithygenerated.Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_attributeActionsOnEncrypt_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyOverride).Dtor_attributeActionsOnEncrypt()),
+		DefaultAttributeFlag:      awscryptographydbencryptionsdkdynamodbsmithygenerated.Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_defaultAttributeFlag_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyOverride).Dtor_defaultAttributeFlag().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_plaintextOverride_FromDafny(input interface{}) *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PlaintextOverride {
+	return func() *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PlaintextOverride {
+		var u awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PlaintextOverride
+		if input == nil {
+			return nil
+		}
+		inputEnum := input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride)
+		index := -1
+		for allEnums := dafny.Iterate(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_PlaintextOverride_{}.AllSingletonConstructors()); ; {
+			enum, ok := allEnums()
+			if ok {
+				index++
+				if enum.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride).Equals(inputEnum) {
+					break
+				}
+			}
+		}
+
+		return &u.Values()[index]
+	}()
+}
diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes/errors.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes/errors.go
new file mode 100644
index 000000000..7dbd6b99e
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes/errors.go
@@ -0,0 +1,17 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes
+
+import (
+	"fmt"
+)
+
+type DynamoDbItemEncryptorException struct {
+	DynamoDbItemEncryptorBaseException
+	Message           string
+	ErrorCodeOverride *string
+}
+
+func (e DynamoDbItemEncryptorException) Error() string {
+	return fmt.Sprintf("%s: %s", e.ErrorCodeOverride, e.Message)
+}
diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes/types.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes/types.go
new file mode 100644
index 000000000..dbe8e708c
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes/types.go
@@ -0,0 +1,852 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes
+
+import (
+	"fmt"
+	"unicode/utf8"
+
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes"
+	dynamodbtypes "github.com/aws/aws-sdk-go-v2/service/dynamodb/types"
+)
+
+type DecryptItemInput struct {
+	EncryptedItem map[string]dynamodbtypes.AttributeValue
+}
+
+func (input DecryptItemInput) Validate() error {
+	if input.EncryptedItem == nil {
+		return fmt.Errorf("input.EncryptedItem is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemInput_encryptedItem_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemInput_encryptedItem_Validate()
+	}
+
+	return nil
+}
+
+func (input DecryptItemInput) Com_amazonaws_dynamodb_AttributeMap_value_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+	case *dynamodbtypes.AttributeValueMemberL:
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input DecryptItemInput) Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+		if input.Com_amazonaws_dynamodb_AttributeValue_M_Validate(unionType.Value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeValue_M_Validate(unionType.Value)
+		}
+	case *dynamodbtypes.AttributeValueMemberL:
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input DecryptItemInput) Com_amazonaws_dynamodb_AttributeValue_M_Validate(Value map[string]dynamodbtypes.AttributeValue) error {
+	for key, value := range Value {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+		if input.Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(value) != nil {
+			return input.Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(value)
+		}
+	}
+
+	return nil
+}
+func (input DecryptItemInput) Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+	case *dynamodbtypes.AttributeValueMemberL:
+		if input.Com_amazonaws_dynamodb_AttributeValue_L_Validate(unionType.Value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeValue_L_Validate(unionType.Value)
+		}
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input DecryptItemInput) Com_amazonaws_dynamodb_AttributeValue_L_Validate(Value []dynamodbtypes.AttributeValue) error {
+	for _, item := range Value {
+		if input.Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(item) != nil {
+			return input.Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(item)
+		}
+	}
+
+	return nil
+}
+func (input DecryptItemInput) Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemInput_encryptedItem_Validate() error {
+	for key, value := range input.EncryptedItem {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+		if input.Com_amazonaws_dynamodb_AttributeMap_value_Validate(value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeMap_value_Validate(value)
+		}
+	}
+
+	return nil
+}
+
+type EncryptItemInput struct {
+	PlaintextItem map[string]dynamodbtypes.AttributeValue
+}
+
+func (input EncryptItemInput) Validate() error {
+	if input.PlaintextItem == nil {
+		return fmt.Errorf("input.PlaintextItem is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemInput_plaintextItem_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemInput_plaintextItem_Validate()
+	}
+
+	return nil
+}
+
+func (input EncryptItemInput) Com_amazonaws_dynamodb_AttributeMap_value_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+	case *dynamodbtypes.AttributeValueMemberL:
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input EncryptItemInput) Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+		if input.Com_amazonaws_dynamodb_AttributeValue_M_Validate(unionType.Value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeValue_M_Validate(unionType.Value)
+		}
+	case *dynamodbtypes.AttributeValueMemberL:
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input EncryptItemInput) Com_amazonaws_dynamodb_AttributeValue_M_Validate(Value map[string]dynamodbtypes.AttributeValue) error {
+	for key, value := range Value {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+		if input.Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(value) != nil {
+			return input.Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(value)
+		}
+	}
+
+	return nil
+}
+func (input EncryptItemInput) Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+	case *dynamodbtypes.AttributeValueMemberL:
+		if input.Com_amazonaws_dynamodb_AttributeValue_L_Validate(unionType.Value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeValue_L_Validate(unionType.Value)
+		}
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input EncryptItemInput) Com_amazonaws_dynamodb_AttributeValue_L_Validate(Value []dynamodbtypes.AttributeValue) error {
+	for _, item := range Value {
+		if input.Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(item) != nil {
+			return input.Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(item)
+		}
+	}
+
+	return nil
+}
+func (input EncryptItemInput) Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemInput_plaintextItem_Validate() error {
+	for key, value := range input.PlaintextItem {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+		if input.Com_amazonaws_dynamodb_AttributeMap_value_Validate(value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeMap_value_Validate(value)
+		}
+	}
+
+	return nil
+}
+
+type ParsedHeader struct {
+	AlgorithmSuiteId awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId
+
+	AttributeActionsOnEncrypt map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction
+
+	EncryptedDataKeys []awscryptographymaterialproviderssmithygeneratedtypes.EncryptedDataKey
+
+	EncryptionContext map[string]string
+
+	SelectorContext map[string]dynamodbtypes.AttributeValue
+
+	StoredEncryptionContext map[string]string
+}
+
+func (input ParsedHeader) Validate() error {
+	if input.AttributeActionsOnEncrypt == nil {
+		return fmt.Errorf("input.AttributeActionsOnEncrypt is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_attributeActionsOnEncrypt_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_attributeActionsOnEncrypt_Validate()
+	}
+	if input.EncryptedDataKeys == nil {
+		return fmt.Errorf("input.EncryptedDataKeys is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptedDataKeys_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptedDataKeys_Validate()
+	}
+	if input.EncryptionContext == nil {
+		return fmt.Errorf("input.EncryptionContext is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptionContext_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptionContext_Validate()
+	}
+	if input.SelectorContext == nil {
+		return fmt.Errorf("input.SelectorContext is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_selectorContext_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_selectorContext_Validate()
+	}
+	if input.StoredEncryptionContext == nil {
+		return fmt.Errorf("input.StoredEncryptionContext is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_storedEncryptionContext_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_storedEncryptionContext_Validate()
+	}
+
+	return nil
+}
+
+func (input ParsedHeader) Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_attributeActionsOnEncrypt_Validate() error {
+	for key, _ := range input.AttributeActionsOnEncrypt {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+	}
+
+	return nil
+}
+func (input ParsedHeader) Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptedDataKeys_Validate() error {
+	for _, item := range input.EncryptedDataKeys {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+func (input ParsedHeader) Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptionContext_Validate() error {
+	for key, value := range input.EncryptionContext {
+		if !utf8.ValidString(key) {
+			return fmt.Errorf("Invalid UTF bytes %s ", key)
+		}
+		if !utf8.ValidString(value) {
+			return fmt.Errorf("Invalid UTF bytes %s ", value)
+		}
+	}
+
+	return nil
+}
+func (input ParsedHeader) Com_amazonaws_dynamodb_Key_value_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+	case *dynamodbtypes.AttributeValueMemberL:
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input ParsedHeader) Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+		if input.Com_amazonaws_dynamodb_AttributeValue_M_Validate(unionType.Value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeValue_M_Validate(unionType.Value)
+		}
+	case *dynamodbtypes.AttributeValueMemberL:
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input ParsedHeader) Com_amazonaws_dynamodb_AttributeValue_M_Validate(Value map[string]dynamodbtypes.AttributeValue) error {
+	for key, value := range Value {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+		if input.Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(value) != nil {
+			return input.Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(value)
+		}
+	}
+
+	return nil
+}
+func (input ParsedHeader) Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+	case *dynamodbtypes.AttributeValueMemberL:
+		if input.Com_amazonaws_dynamodb_AttributeValue_L_Validate(unionType.Value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeValue_L_Validate(unionType.Value)
+		}
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input ParsedHeader) Com_amazonaws_dynamodb_AttributeValue_L_Validate(Value []dynamodbtypes.AttributeValue) error {
+	for _, item := range Value {
+		if input.Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(item) != nil {
+			return input.Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(item)
+		}
+	}
+
+	return nil
+}
+func (input ParsedHeader) Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_selectorContext_Validate() error {
+	for key, value := range input.SelectorContext {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+		if input.Com_amazonaws_dynamodb_Key_value_Validate(value) != nil {
+			return input.Com_amazonaws_dynamodb_Key_value_Validate(value)
+		}
+	}
+
+	return nil
+}
+func (input ParsedHeader) Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_storedEncryptionContext_Validate() error {
+	for key, value := range input.StoredEncryptionContext {
+		if !utf8.ValidString(key) {
+			return fmt.Errorf("Invalid UTF bytes %s ", key)
+		}
+		if !utf8.ValidString(value) {
+			return fmt.Errorf("Invalid UTF bytes %s ", value)
+		}
+	}
+
+	return nil
+}
+
+type DecryptItemOutput struct {
+	PlaintextItem map[string]dynamodbtypes.AttributeValue
+
+	ParsedHeader *ParsedHeader
+}
+
+func (input DecryptItemOutput) Validate() error {
+	if input.PlaintextItem == nil {
+		return fmt.Errorf("input.PlaintextItem is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemOutput_plaintextItem_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemOutput_plaintextItem_Validate()
+	}
+	if input.ParsedHeader != nil {
+		if input.ParsedHeader.Validate() != nil {
+			return input.ParsedHeader.Validate()
+		}
+
+	}
+
+	return nil
+}
+
+func (input DecryptItemOutput) Com_amazonaws_dynamodb_AttributeMap_value_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+	case *dynamodbtypes.AttributeValueMemberL:
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input DecryptItemOutput) Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+		if input.Com_amazonaws_dynamodb_AttributeValue_M_Validate(unionType.Value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeValue_M_Validate(unionType.Value)
+		}
+	case *dynamodbtypes.AttributeValueMemberL:
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input DecryptItemOutput) Com_amazonaws_dynamodb_AttributeValue_M_Validate(Value map[string]dynamodbtypes.AttributeValue) error {
+	for key, value := range Value {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+		if input.Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(value) != nil {
+			return input.Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(value)
+		}
+	}
+
+	return nil
+}
+func (input DecryptItemOutput) Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+	case *dynamodbtypes.AttributeValueMemberL:
+		if input.Com_amazonaws_dynamodb_AttributeValue_L_Validate(unionType.Value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeValue_L_Validate(unionType.Value)
+		}
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input DecryptItemOutput) Com_amazonaws_dynamodb_AttributeValue_L_Validate(Value []dynamodbtypes.AttributeValue) error {
+	for _, item := range Value {
+		if input.Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(item) != nil {
+			return input.Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(item)
+		}
+	}
+
+	return nil
+}
+func (input DecryptItemOutput) Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemOutput_plaintextItem_Validate() error {
+	for key, value := range input.PlaintextItem {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+		if input.Com_amazonaws_dynamodb_AttributeMap_value_Validate(value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeMap_value_Validate(value)
+		}
+	}
+
+	return nil
+}
+
+type EncryptItemOutput struct {
+	EncryptedItem map[string]dynamodbtypes.AttributeValue
+
+	ParsedHeader *ParsedHeader
+}
+
+func (input EncryptItemOutput) Validate() error {
+	if input.EncryptedItem == nil {
+		return fmt.Errorf("input.EncryptedItem is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemOutput_encryptedItem_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemOutput_encryptedItem_Validate()
+	}
+	if input.ParsedHeader != nil {
+		if input.ParsedHeader.Validate() != nil {
+			return input.ParsedHeader.Validate()
+		}
+
+	}
+
+	return nil
+}
+
+func (input EncryptItemOutput) Com_amazonaws_dynamodb_AttributeMap_value_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+	case *dynamodbtypes.AttributeValueMemberL:
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input EncryptItemOutput) Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+		if input.Com_amazonaws_dynamodb_AttributeValue_M_Validate(unionType.Value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeValue_M_Validate(unionType.Value)
+		}
+	case *dynamodbtypes.AttributeValueMemberL:
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input EncryptItemOutput) Com_amazonaws_dynamodb_AttributeValue_M_Validate(Value map[string]dynamodbtypes.AttributeValue) error {
+	for key, value := range Value {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+		if input.Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(value) != nil {
+			return input.Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(value)
+		}
+	}
+
+	return nil
+}
+func (input EncryptItemOutput) Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+	case *dynamodbtypes.AttributeValueMemberL:
+		if input.Com_amazonaws_dynamodb_AttributeValue_L_Validate(unionType.Value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeValue_L_Validate(unionType.Value)
+		}
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input EncryptItemOutput) Com_amazonaws_dynamodb_AttributeValue_L_Validate(Value []dynamodbtypes.AttributeValue) error {
+	for _, item := range Value {
+		if input.Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(item) != nil {
+			return input.Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(item)
+		}
+	}
+
+	return nil
+}
+func (input EncryptItemOutput) Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemOutput_encryptedItem_Validate() error {
+	for key, value := range input.EncryptedItem {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+		if input.Com_amazonaws_dynamodb_AttributeMap_value_Validate(value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeMap_value_Validate(value)
+		}
+	}
+
+	return nil
+}
+
+type AtomicPrimitivesReference struct {
+}
+
+func (input AtomicPrimitivesReference) Validate() error {
+
+	return nil
+}
+
+type DynamoDbItemEncryptorConfig struct {
+	AttributeActionsOnEncrypt map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction
+
+	LogicalTableName string
+
+	PartitionKeyName string
+
+	AlgorithmSuiteId *awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId
+
+	AllowedUnsignedAttributePrefix *string
+
+	AllowedUnsignedAttributes []string
+
+	Cmm awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsManager
+
+	Keyring awscryptographymaterialproviderssmithygeneratedtypes.IKeyring
+
+	LegacyOverride *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyOverride
+
+	PlaintextOverride *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PlaintextOverride
+
+	SortKeyName *string
+}
+
+func (input DynamoDbItemEncryptorConfig) Validate() error {
+	if input.AttributeActionsOnEncrypt == nil {
+		return fmt.Errorf("input.AttributeActionsOnEncrypt is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_attributeActionsOnEncrypt_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_attributeActionsOnEncrypt_Validate()
+	}
+	if len(input.PartitionKeyName) < 1 {
+		return fmt.Errorf("KeySchemaAttributeName has a minimum length of 1 but has the length of %d.", len(input.PartitionKeyName))
+	}
+	if len(input.PartitionKeyName) > 255 {
+		return fmt.Errorf("KeySchemaAttributeName has a maximum length of 255 but has the length of %d.", len(input.PartitionKeyName))
+	}
+	if len(input.AllowedUnsignedAttributes) < 1 {
+		return fmt.Errorf("AttributeNameList has a minimum length of 1 but has the length of %d.", len(input.AllowedUnsignedAttributes))
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_allowedUnsignedAttributes_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_allowedUnsignedAttributes_Validate()
+	}
+	if input.LegacyOverride != nil {
+		if input.LegacyOverride.Validate() != nil {
+			return input.LegacyOverride.Validate()
+		}
+
+	}
+	if input.SortKeyName != nil {
+		if len(*input.SortKeyName) < 1 {
+			return fmt.Errorf("KeySchemaAttributeName has a minimum length of 1 but has the length of %d.", len(*input.SortKeyName))
+		}
+		if len(*input.SortKeyName) > 255 {
+			return fmt.Errorf("KeySchemaAttributeName has a maximum length of 255 but has the length of %d.", len(*input.SortKeyName))
+		}
+	}
+
+	return nil
+}
+
+func (input DynamoDbItemEncryptorConfig) Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_attributeActionsOnEncrypt_Validate() error {
+	for key, _ := range input.AttributeActionsOnEncrypt {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+	}
+
+	return nil
+}
+func (input DynamoDbItemEncryptorConfig) Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_allowedUnsignedAttributes_Validate() error {
+	for _, item := range input.AllowedUnsignedAttributes {
+		if len(item) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(item))
+		}
+		if len(item) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(item))
+		}
+	}
+
+	return nil
+}
+
+type StructuredEncryptionReference struct {
+}
+
+func (input StructuredEncryptionReference) Validate() error {
+
+	return nil
+}
+
+type DynamoDbItemEncryptorBaseException interface {
+	// This is a dummy method to allow type assertion since Go empty interfaces
+	// aren't useful for type assertion checks. No concrete class is expected to implement
+	// this method. This is also not exported.
+	interfaceBindingMethod()
+}
diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes/unmodelled_errors.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes/unmodelled_errors.go
new file mode 100644
index 000000000..e6a12a0b3
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes/unmodelled_errors.go
@@ -0,0 +1,26 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes
+
+import (
+	"fmt"
+)
+
+type CollectionOfErrors struct {
+	DynamoDbItemEncryptorBaseException
+	ListOfErrors []error
+	Message      string
+}
+
+func (e CollectionOfErrors) Error() string {
+	return fmt.Sprintf("message: %s\n err %v", e.Message, e.ListOfErrors)
+}
+
+type OpaqueError struct {
+	DynamoDbItemEncryptorBaseException
+	ErrObject interface{}
+}
+
+func (e OpaqueError) Error() string {
+	return fmt.Sprintf("message: %v", e.ErrObject)
+}
diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/DynamoDbKeyBranchKeyIdSupplier.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/DynamoDbKeyBranchKeyIdSupplier.go
new file mode 100644
index 000000000..3be011021
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/DynamoDbKeyBranchKeyIdSupplier.go
@@ -0,0 +1,25 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbsmithygenerated
+
+import (
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes"
+)
+
+type DynamoDbKeyBranchKeyIdSupplier struct {
+	Impl AwsCryptographyDbEncryptionSdkDynamoDbTypes.IDynamoDbKeyBranchKeyIdSupplier
+}
+
+func (this *DynamoDbKeyBranchKeyIdSupplier) GetBranchKeyIdFromDdbKey(params awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetBranchKeyIdFromDdbKeyInput) (*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetBranchKeyIdFromDdbKeyOutput, error) {
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetBranchKeyIdFromDdbKeyInput = GetBranchKeyIdFromDdbKeyInput_ToDafny(params)
+	var dafny_response = this.Impl.GetBranchKeyIdFromDdbKey(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = GetBranchKeyIdFromDdbKeyOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetBranchKeyIdFromDdbKeyOutput))
+	return &native_response, nil
+
+}
diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/DynamoDbKeyBranchKeyIdSupplierNativeWrapper.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/DynamoDbKeyBranchKeyIdSupplierNativeWrapper.go
new file mode 100644
index 000000000..49450292e
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/DynamoDbKeyBranchKeyIdSupplierNativeWrapper.go
@@ -0,0 +1,23 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbsmithygenerated
+
+import (
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes"
+)
+
+type DynamoDbKeyBranchKeyIdSupplierNativeWrapper struct {
+	AwsCryptographyDbEncryptionSdkDynamoDbTypes.IDynamoDbKeyBranchKeyIdSupplier
+	Impl awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.IDynamoDbKeyBranchKeyIdSupplier
+}
+
+func (this *DynamoDbKeyBranchKeyIdSupplierNativeWrapper) GetBranchKeyIdFromDdbKey(input AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetBranchKeyIdFromDdbKeyInput) Wrappers.Result {
+	var native_request = GetBranchKeyIdFromDdbKeyInput_FromDafny(input)
+	var native_response, native_error = this.Impl.GetBranchKeyIdFromDdbKey(native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(GetBranchKeyIdFromDdbKeyOutput_ToDafny(*native_response))
+}
diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/LegacyDynamoDbEncryptor.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/LegacyDynamoDbEncryptor.go
new file mode 100644
index 000000000..eafc684e5
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/LegacyDynamoDbEncryptor.go
@@ -0,0 +1,11 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbsmithygenerated
+
+import (
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbTypes"
+)
+
+type LegacyDynamoDbEncryptor struct {
+	Impl AwsCryptographyDbEncryptionSdkDynamoDbTypes.ILegacyDynamoDbEncryptor
+}
diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/LegacyDynamoDbEncryptorNativeWrapper.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/LegacyDynamoDbEncryptorNativeWrapper.go
new file mode 100644
index 000000000..785ae9a55
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/LegacyDynamoDbEncryptorNativeWrapper.go
@@ -0,0 +1,13 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbsmithygenerated
+
+import (
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes"
+)
+
+type LegacyDynamoDbEncryptorNativeWrapper struct {
+	AwsCryptographyDbEncryptionSdkDynamoDbTypes.ILegacyDynamoDbEncryptor
+	Impl awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.ILegacyDynamoDbEncryptor
+}
diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/api_client.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/api_client.go
new file mode 100644
index 000000000..beeda18d4
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/api_client.go
@@ -0,0 +1,68 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbsmithygenerated
+
+import (
+	"context"
+
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/DynamoDbEncryption"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes"
+)
+
+type Client struct {
+	DafnyClient AwsCryptographyDbEncryptionSdkDynamoDbTypes.IDynamoDbEncryptionClient
+}
+
+func NewClient(clientConfig awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbEncryptionConfig) (*Client, error) {
+	var dafnyConfig = DynamoDbEncryptionConfig_ToDafny(clientConfig)
+	var dafny_response = DynamoDbEncryption.Companion_Default___.DynamoDbEncryption(dafnyConfig)
+	if dafny_response.Is_Failure() {
+		panic("Client construction failed. This should never happen")
+	}
+	var dafnyClient = dafny_response.Extract().(AwsCryptographyDbEncryptionSdkDynamoDbTypes.IDynamoDbEncryptionClient)
+	client := &Client{dafnyClient}
+	return client, nil
+}
+
+func (client *Client) CreateDynamoDbEncryptionBranchKeyIdSupplier(ctx context.Context, params awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CreateDynamoDbEncryptionBranchKeyIdSupplierInput) (*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CreateDynamoDbEncryptionBranchKeyIdSupplierOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTypes.CreateDynamoDbEncryptionBranchKeyIdSupplierInput = CreateDynamoDbEncryptionBranchKeyIdSupplierInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.CreateDynamoDbEncryptionBranchKeyIdSupplier(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CreateDynamoDbEncryptionBranchKeyIdSupplierOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) GetEncryptedDataKeyDescription(ctx context.Context, params awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetEncryptedDataKeyDescriptionInput) (*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetEncryptedDataKeyDescriptionOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionInput = GetEncryptedDataKeyDescriptionInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.GetEncryptedDataKeyDescription(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = GetEncryptedDataKeyDescriptionOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionOutput))
+	return &native_response, nil
+
+}
diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/to_dafny.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/to_dafny.go
new file mode 100644
index 000000000..015d4054d
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/to_dafny.go
@@ -0,0 +1,1821 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbsmithygenerated
+
+import (
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/comamazonawsdynamodbsmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographykeystoresmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographykeystoresmithygeneratedtypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/awscryptographyprimitivessmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/awscryptographyprimitivessmithygeneratedtypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes"
+	dynamodbtypes "github.com/aws/aws-sdk-go-v2/service/dynamodb/types"
+	"github.com/aws/smithy-go"
+	"github.com/dafny-lang/DafnyRuntimeGo/v4/dafny"
+)
+
+func CreateDynamoDbEncryptionBranchKeyIdSupplierInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CreateDynamoDbEncryptionBranchKeyIdSupplierInput) AwsCryptographyDbEncryptionSdkDynamoDbTypes.CreateDynamoDbEncryptionBranchKeyIdSupplierInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.CreateDynamoDbEncryptionBranchKeyIdSupplierInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_CreateDynamoDbEncryptionBranchKeyIdSupplierInput_.Create_CreateDynamoDbEncryptionBranchKeyIdSupplierInput_(DynamoDbKeyBranchKeyIdSupplier_ToDafny(nativeInput.DdbKeyBranchKeyIdSupplier))
+	}()
+
+}
+
+func CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CreateDynamoDbEncryptionBranchKeyIdSupplierOutput) AwsCryptographyDbEncryptionSdkDynamoDbTypes.CreateDynamoDbEncryptionBranchKeyIdSupplierOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.CreateDynamoDbEncryptionBranchKeyIdSupplierOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_.Create_CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_(awscryptographymaterialproviderssmithygenerated.BranchKeyIdSupplier_ToDafny(nativeOutput.BranchKeyIdSupplier))
+	}()
+
+}
+
+func GetEncryptedDataKeyDescriptionInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetEncryptedDataKeyDescriptionInput) AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_GetEncryptedDataKeyDescriptionInput_.Create_GetEncryptedDataKeyDescriptionInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionInput_input_ToDafny(nativeInput.Input))
+	}()
+
+}
+
+func GetEncryptedDataKeyDescriptionOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetEncryptedDataKeyDescriptionOutput) AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_GetEncryptedDataKeyDescriptionOutput_.Create_GetEncryptedDataKeyDescriptionOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionOutput_EncryptedDataKeyDescriptionOutput_ToDafny(nativeOutput.EncryptedDataKeyDescriptionOutput))
+	}()
+
+}
+
+func GetBranchKeyIdFromDdbKeyInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetBranchKeyIdFromDdbKeyInput) AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetBranchKeyIdFromDdbKeyInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetBranchKeyIdFromDdbKeyInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_GetBranchKeyIdFromDdbKeyInput_.Create_GetBranchKeyIdFromDdbKeyInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_GetBranchKeyIdFromDdbKeyInput_ddbKey_ToDafny(nativeInput.DdbKey))
+	}()
+
+}
+
+func GetBranchKeyIdFromDdbKeyOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetBranchKeyIdFromDdbKeyOutput) AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetBranchKeyIdFromDdbKeyOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetBranchKeyIdFromDdbKeyOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_GetBranchKeyIdFromDdbKeyOutput_.Create_GetBranchKeyIdFromDdbKeyOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_GetBranchKeyIdFromDdbKeyOutput_branchKeyId_ToDafny(nativeOutput.BranchKeyId))
+	}()
+
+}
+
+func DynamoDbKeyBranchKeyIdSupplier_ToDafny(nativeResource awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.IDynamoDbKeyBranchKeyIdSupplier) AwsCryptographyDbEncryptionSdkDynamoDbTypes.IDynamoDbKeyBranchKeyIdSupplier {
+	val, ok := nativeResource.(*DynamoDbKeyBranchKeyIdSupplier)
+	if ok {
+		return val.Impl
+	}
+	return DynamoDbKeyBranchKeyIdSupplier{&DynamoDbKeyBranchKeyIdSupplierNativeWrapper{Impl: nativeResource}}.Impl
+
+}
+
+func LegacyDynamoDbEncryptor_ToDafny(nativeResource awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.ILegacyDynamoDbEncryptor) AwsCryptographyDbEncryptionSdkDynamoDbTypes.ILegacyDynamoDbEncryptor {
+	val, ok := nativeResource.(*LegacyDynamoDbEncryptor)
+	if ok {
+		return val.Impl
+	}
+	return LegacyDynamoDbEncryptor{&LegacyDynamoDbEncryptorNativeWrapper{Impl: nativeResource}}.Impl
+
+}
+
+func DynamoDbEncryptionException_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbEncryptionException) AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_DynamoDbEncryptionException_(Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbEncryptionException_message_ToDafny(nativeInput.Message))
+	}()
+
+}
+
+func CollectionOfErrors_Input_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CollectionOfErrors) AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error {
+	var e []interface{}
+	for _, i2 := range nativeInput.ListOfErrors {
+		e = append(e, Error_ToDafny(i2))
+	}
+	return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_CollectionOfErrors_(dafny.SeqOf(e...), func() dafny.Sequence {
+		res, err := UTF8.DecodeFromNativeGoByteArray([]byte(nativeInput.Message))
+		if err != nil {
+			panic("invalid utf8 input provided")
+		}
+		return res
+	}())
+}
+func OpaqueError_Input_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.OpaqueError) AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error {
+	return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_Opaque_(nativeInput.ErrObject)
+}
+
+func Error_ToDafny(err error) AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error {
+	switch err.(type) {
+	// Service Errors
+	case awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbEncryptionException:
+		return DynamoDbEncryptionException_ToDafny(err.(awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbEncryptionException))
+
+	//DependentErrors
+	case awscryptographyprimitivessmithygeneratedtypes.AwsCryptographicPrimitivesBaseException:
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(awscryptographyprimitivessmithygenerated.Error_ToDafny(err))
+
+	case awscryptographymaterialproviderssmithygeneratedtypes.AwsCryptographicMaterialProvidersBaseException:
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_AwsCryptographyMaterialProviders_(awscryptographymaterialproviderssmithygenerated.Error_ToDafny(err))
+
+	case awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredEncryptionBaseException:
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkStructuredEncryption_(awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.Error_ToDafny(err))
+
+	case awscryptographykeystoresmithygeneratedtypes.KeyStoreBaseException:
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_AwsCryptographyKeyStore_(awscryptographykeystoresmithygenerated.Error_ToDafny(err))
+
+	case *smithy.OperationError:
+		if err.(*smithy.OperationError).Service() == "DynamoDB" {
+			DynamoDBError := comamazonawsdynamodbsmithygenerated.Error_ToDafny(err)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_ComAmazonawsDynamodb_(DynamoDBError)
+		}
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_Opaque_(err)
+
+	case smithy.APIError:
+		DynamoDBError := comamazonawsdynamodbsmithygenerated.Error_ToDafny(err)
+		if !DynamoDBError.Is_OpaqueWithText() {
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_ComAmazonawsDynamodb_(DynamoDBError)
+		}
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_Opaque_(err)
+
+	//Unmodelled Errors
+	case awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CollectionOfErrors:
+		return CollectionOfErrors_Input_ToDafny(err.(awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CollectionOfErrors))
+
+	default:
+		error, ok := err.(awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.OpaqueError)
+		if !ok {
+			panic("Error is not an OpaqueError")
+		}
+		return OpaqueError_Input_ToDafny(error)
+	}
+}
+
+func DynamoDbEncryptionConfig_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbEncryptionConfig) AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbEncryptionConfig {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbEncryptionConfig {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_DynamoDbEncryptionConfig_.Create_DynamoDbEncryptionConfig_()
+	}()
+
+}
+
+func AsSet_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.AsSet) AwsCryptographyDbEncryptionSdkDynamoDbTypes.AsSet {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.AsSet {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_AsSet_.Create_AsSet_()
+	}()
+
+}
+
+func MultiKeyStore_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.MultiKeyStore) AwsCryptographyDbEncryptionSdkDynamoDbTypes.MultiKeyStore {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.MultiKeyStore {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_MultiKeyStore_.Create_MultiKeyStore_(Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_keyFieldName_ToDafny(nativeInput.KeyFieldName), Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_cacheTTL_ToDafny(nativeInput.CacheTTL), Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_cache_ToDafny(nativeInput.Cache), Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_partitionId_ToDafny(nativeInput.PartitionId))
+	}()
+
+}
+
+func SingleKeyStore_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SingleKeyStore) AwsCryptographyDbEncryptionSdkDynamoDbTypes.SingleKeyStore {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.SingleKeyStore {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_SingleKeyStore_.Create_SingleKeyStore_(Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_keyId_ToDafny(nativeInput.KeyId), Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_cacheTTL_ToDafny(nativeInput.CacheTTL), Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_cache_ToDafny(nativeInput.Cache), Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_partitionId_ToDafny(nativeInput.PartitionId))
+	}()
+
+}
+
+func BeaconKeySource_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySource) AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconKeySource {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconKeySource {
+
+		switch nativeInput.(type) {
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySourceMembersingle:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconKeySource_single_ToDafny(nativeInput.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySourceMembersingle).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_BeaconKeySource_{}.Create_single_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SingleKeyStore))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySourceMembermulti:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconKeySource_multi_ToDafny(nativeInput.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySourceMembermulti).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_BeaconKeySource_{}.Create_multi_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.MultiKeyStore))
+
+		default:
+			panic("Unhandled union type")
+		}
+	}()
+
+}
+
+func PartOnly_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PartOnly) AwsCryptographyDbEncryptionSdkDynamoDbTypes.PartOnly {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.PartOnly {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_PartOnly_.Create_PartOnly_()
+	}()
+
+}
+
+func Shared_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Shared) AwsCryptographyDbEncryptionSdkDynamoDbTypes.Shared {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.Shared {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Shared_.Create_Shared_(Aws_cryptography_dbEncryptionSdk_dynamoDb_Shared_other_ToDafny(nativeInput.Other))
+	}()
+
+}
+
+func SharedSet_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SharedSet) AwsCryptographyDbEncryptionSdkDynamoDbTypes.SharedSet {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.SharedSet {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_SharedSet_.Create_SharedSet_(Aws_cryptography_dbEncryptionSdk_dynamoDb_SharedSet_other_ToDafny(nativeInput.Other))
+	}()
+
+}
+
+func BeaconStyle_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyle) AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle {
+
+		switch nativeInput.(type) {
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMemberpartOnly:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_partOnly_ToDafny(nativeInput.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMemberpartOnly).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_BeaconStyle_{}.Create_partOnly_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.PartOnly))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMembershared:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_shared_ToDafny(nativeInput.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMembershared).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_BeaconStyle_{}.Create_shared_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Shared))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMemberasSet:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_asSet_ToDafny(nativeInput.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMemberasSet).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_BeaconStyle_{}.Create_asSet_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.AsSet))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMembersharedSet:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_sharedSet_ToDafny(nativeInput.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMembersharedSet).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_BeaconStyle_{}.Create_sharedSet_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SharedSet))
+
+		default:
+			panic("Unhandled union type")
+		}
+	}()
+
+}
+
+func ConstructorPart_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.ConstructorPart) AwsCryptographyDbEncryptionSdkDynamoDbTypes.ConstructorPart {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.ConstructorPart {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_ConstructorPart_.Create_ConstructorPart_(Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorPart_name_ToDafny(nativeInput.Name), Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorPart_required_ToDafny(nativeInput.Required))
+	}()
+
+}
+
+func Constructor_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Constructor) AwsCryptographyDbEncryptionSdkDynamoDbTypes.Constructor {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.Constructor {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Constructor_.Create_Constructor_(Aws_cryptography_dbEncryptionSdk_dynamoDb_Constructor_parts_ToDafny(nativeInput.Parts))
+	}()
+
+}
+
+func EncryptedPart_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedPart) AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedPart {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedPart {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_EncryptedPart_.Create_EncryptedPart_(Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPart_name_ToDafny(nativeInput.Name), Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPart_prefix_ToDafny(nativeInput.Prefix))
+	}()
+
+}
+
+func SignedPart_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SignedPart) AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPart {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPart {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_SignedPart_.Create_SignedPart_(Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_name_ToDafny(nativeInput.Name), Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_prefix_ToDafny(nativeInput.Prefix), Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_loc_ToDafny(nativeInput.Loc))
+	}()
+
+}
+
+func CompoundBeacon_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CompoundBeacon) AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeacon {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeacon {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_CompoundBeacon_.Create_CompoundBeacon_(Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_name_ToDafny(nativeInput.Name), Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_split_ToDafny(nativeInput.Split), Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_encrypted_ToDafny(nativeInput.Encrypted), Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_signed_ToDafny(nativeInput.Signed), Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_constructors_ToDafny(nativeInput.Constructors))
+	}()
+
+}
+
+func StandardBeacon_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.StandardBeacon) AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_StandardBeacon_.Create_StandardBeacon_(Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_name_ToDafny(nativeInput.Name), Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_length_ToDafny(nativeInput.Length), Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_loc_ToDafny(nativeInput.Loc), Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_style_ToDafny(nativeInput.Style))
+	}()
+
+}
+
+func Insert_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Insert) AwsCryptographyDbEncryptionSdkDynamoDbTypes.Insert {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.Insert {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Insert_.Create_Insert_(Aws_cryptography_dbEncryptionSdk_dynamoDb_Insert_literal_ToDafny(nativeInput.Literal))
+	}()
+
+}
+
+func Lower_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Lower) AwsCryptographyDbEncryptionSdkDynamoDbTypes.Lower {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.Lower {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Lower_.Create_Lower_()
+	}()
+
+}
+
+func GetPrefix_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetPrefix) AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetPrefix {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetPrefix {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_GetPrefix_.Create_GetPrefix_(Aws_cryptography_dbEncryptionSdk_dynamoDb_GetPrefix_length_ToDafny(nativeInput.Length))
+	}()
+
+}
+
+func GetSegment_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSegment) AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegment {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegment {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_GetSegment_.Create_GetSegment_(Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegment_split_ToDafny(nativeInput.Split), Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegment_index_ToDafny(nativeInput.Index))
+	}()
+
+}
+
+func GetSegments_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSegments) AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegments {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegments {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_GetSegments_.Create_GetSegments_(Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_split_ToDafny(nativeInput.Split), Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_low_ToDafny(nativeInput.Low), Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_high_ToDafny(nativeInput.High))
+	}()
+
+}
+
+func GetSubstring_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSubstring) AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSubstring {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSubstring {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_GetSubstring_.Create_GetSubstring_(Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSubstring_low_ToDafny(nativeInput.Low), Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSubstring_high_ToDafny(nativeInput.High))
+	}()
+
+}
+
+func GetSuffix_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSuffix) AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSuffix {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSuffix {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_GetSuffix_.Create_GetSuffix_(Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSuffix_length_ToDafny(nativeInput.Length))
+	}()
+
+}
+
+func Upper_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Upper) AwsCryptographyDbEncryptionSdkDynamoDbTypes.Upper {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.Upper {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Upper_.Create_Upper_()
+	}()
+
+}
+
+func VirtualTransform_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransform) AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform {
+
+		switch nativeInput.(type) {
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberupper:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_upper_ToDafny(nativeInput.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberupper).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_VirtualTransform_{}.Create_upper_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Upper))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberlower:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_lower_ToDafny(nativeInput.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberlower).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_VirtualTransform_{}.Create_lower_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Lower))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberinsert:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_insert_ToDafny(nativeInput.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberinsert).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_VirtualTransform_{}.Create_insert_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Insert))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberprefix:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_prefix_ToDafny(nativeInput.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberprefix).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_VirtualTransform_{}.Create_prefix_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetPrefix))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersuffix:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_suffix_ToDafny(nativeInput.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersuffix).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_VirtualTransform_{}.Create_suffix_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSuffix))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersubstring:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_substring_ToDafny(nativeInput.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersubstring).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_VirtualTransform_{}.Create_substring_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSubstring))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersegment:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_segment_ToDafny(nativeInput.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersegment).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_VirtualTransform_{}.Create_segment_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegment))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersegments:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_segments_ToDafny(nativeInput.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersegments).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_VirtualTransform_{}.Create_segments_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegments))
+
+		default:
+			panic("Unhandled union type")
+		}
+	}()
+
+}
+
+func VirtualPart_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualPart) AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualPart {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualPart {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_VirtualPart_.Create_VirtualPart_(Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPart_loc_ToDafny(nativeInput.Loc), Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPart_trans_ToDafny(nativeInput.Trans))
+	}()
+
+}
+
+func VirtualField_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualField) AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualField {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualField {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_VirtualField_.Create_VirtualField_(Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualField_name_ToDafny(nativeInput.Name), Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualField_parts_ToDafny(nativeInput.Parts))
+	}()
+
+}
+
+func BeaconVersion_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconVersion) AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_BeaconVersion_.Create_BeaconVersion_(Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_version_ToDafny(nativeInput.Version), Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_keyStore_ToDafny(nativeInput.KeyStore), Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_keySource_ToDafny(nativeInput.KeySource), Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_standardBeacons_ToDafny(nativeInput.StandardBeacons), Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_compoundBeacons_ToDafny(nativeInput.CompoundBeacons), Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_virtualFields_ToDafny(nativeInput.VirtualFields), Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_encryptedParts_ToDafny(nativeInput.EncryptedParts), Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_signedParts_ToDafny(nativeInput.SignedParts))
+	}()
+
+}
+
+func LegacyPolicy_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyPolicy) AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyPolicy {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyPolicy {
+
+		var index int
+		for _, enumVal := range nativeInput.Values() {
+			index++
+			if enumVal == nativeInput {
+				break
+			}
+			if index == len(nativeInput.Values()) {
+				panic("Input value did not found in enum values")
+			}
+
+		}
+		var enum interface{}
+		for allEnums, i := dafny.Iterate(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_LegacyPolicy_{}.AllSingletonConstructors()), 0; i < index; i++ {
+			var ok bool
+			enum, ok = allEnums()
+			if !ok {
+				break
+			}
+		}
+		return enum.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyPolicy)
+	}()
+
+}
+
+func LegacyOverride_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyOverride) AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyOverride {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyOverride {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_LegacyOverride_.Create_LegacyOverride_(Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_policy_ToDafny(nativeInput.Policy), LegacyDynamoDbEncryptor_ToDafny(nativeInput.Encryptor), Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_attributeActionsOnEncrypt_ToDafny(nativeInput.AttributeActionsOnEncrypt), Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_defaultAttributeFlag_ToDafny(nativeInput.DefaultAttributeFlag))
+	}()
+
+}
+
+func PlaintextOverride_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PlaintextOverride) AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride {
+
+		var index int
+		for _, enumVal := range nativeInput.Values() {
+			index++
+			if enumVal == nativeInput {
+				break
+			}
+			if index == len(nativeInput.Values()) {
+				panic("Input value did not found in enum values")
+			}
+
+		}
+		var enum interface{}
+		for allEnums, i := dafny.Iterate(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_PlaintextOverride_{}.AllSingletonConstructors()), 0; i < index; i++ {
+			var ok bool
+			enum, ok = allEnums()
+			if !ok {
+				break
+			}
+		}
+		return enum.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride)
+	}()
+
+}
+
+func SearchConfig_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SearchConfig) AwsCryptographyDbEncryptionSdkDynamoDbTypes.SearchConfig {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.SearchConfig {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_SearchConfig_.Create_SearchConfig_(Aws_cryptography_dbEncryptionSdk_dynamoDb_SearchConfig_versions_ToDafny(nativeInput.Versions), Aws_cryptography_dbEncryptionSdk_dynamoDb_SearchConfig_writeVersion_ToDafny(nativeInput.WriteVersion))
+	}()
+
+}
+
+func DynamoDbTableEncryptionConfig_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbTableEncryptionConfig) AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_DynamoDbTableEncryptionConfig_.Create_DynamoDbTableEncryptionConfig_(Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_logicalTableName_ToDafny(nativeInput.LogicalTableName), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_partitionKeyName_ToDafny(nativeInput.PartitionKeyName), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_sortKeyName_ToDafny(nativeInput.SortKeyName), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_search_ToDafny(nativeInput.Search), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_attributeActionsOnEncrypt_ToDafny(nativeInput.AttributeActionsOnEncrypt), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_allowedUnsignedAttributes_ToDafny(nativeInput.AllowedUnsignedAttributes), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_allowedUnsignedAttributePrefix_ToDafny(nativeInput.AllowedUnsignedAttributePrefix), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_algorithmSuiteId_ToDafny(nativeInput.AlgorithmSuiteId), func() Wrappers.Option {
+			if (nativeInput.Keyring) == nil {
+				return Wrappers.Companion_Option_.Create_None_()
+			}
+			return Wrappers.Companion_Option_.Create_Some_(awscryptographymaterialproviderssmithygenerated.Keyring_ToDafny(nativeInput.Keyring))
+		}(), func() Wrappers.Option {
+			if (nativeInput.Cmm) == nil {
+				return Wrappers.Companion_Option_.Create_None_()
+			}
+			return Wrappers.Companion_Option_.Create_Some_(awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsManager_ToDafny(nativeInput.Cmm))
+		}(), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_legacyOverride_ToDafny(nativeInput.LegacyOverride), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_plaintextOverride_ToDafny(nativeInput.PlaintextOverride))
+	}()
+
+}
+
+func DynamoDbTablesEncryptionConfig_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbTablesEncryptionConfig) AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTablesEncryptionConfig {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTablesEncryptionConfig {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_DynamoDbTablesEncryptionConfig_.Create_DynamoDbTablesEncryptionConfig_(Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTablesEncryptionConfig_tableEncryptionConfigs_ToDafny(nativeInput.TableEncryptionConfigs))
+	}()
+
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionInput_input_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetEncryptedDataKeyDescriptionUnion) AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionUnion {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionUnion {
+
+		switch input.(type) {
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetEncryptedDataKeyDescriptionUnionMemberheader:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionUnion_header_ToDafny(input.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetEncryptedDataKeyDescriptionUnionMemberheader).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_GetEncryptedDataKeyDescriptionUnion_{}.Create_header_(inputToConversion.UnwrapOr(nil).(dafny.Sequence))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetEncryptedDataKeyDescriptionUnionMemberitem:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionUnion_item_ToDafny(input.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetEncryptedDataKeyDescriptionUnionMemberitem).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_GetEncryptedDataKeyDescriptionUnion_{}.Create_item_(inputToConversion.UnwrapOr(nil).(dafny.Map))
+
+		default:
+			panic("Unhandled union type")
+		}
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionUnion_header_ToDafny(input []byte) Wrappers.Option {
+	return func() Wrappers.Option {
+		v := make([]interface{}, 0, len(input))
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		for _, e := range input {
+			v = append(v, e)
+		}
+		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqFromArray(v, false))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionUnion_item_ToDafny(input map[string]dynamodbtypes.AttributeValue) Wrappers.Option {
+	return func() Wrappers.Option {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_key_ToDafny(key), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_value_ToDafny(val))
+		}
+		return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionOutput_EncryptedDataKeyDescriptionOutput_ToDafny(input []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedDataKeyDescription) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescriptionList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return dafny.SeqOf(fieldValue...)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescriptionList_member_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedDataKeyDescription) AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedDataKeyDescription {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedDataKeyDescription {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_EncryptedDataKeyDescription_.Create_EncryptedDataKeyDescription_(Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescription_keyProviderId_ToDafny(input.KeyProviderId), Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescription_keyProviderInfo_ToDafny(input.KeyProviderInfo), Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescription_branchKeyId_ToDafny(input.BranchKeyId), Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescription_branchKeyVersion_ToDafny(input.BranchKeyVersion))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescription_keyProviderId_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescription_keyProviderInfo_ToDafny(input *string) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescription_branchKeyId_ToDafny(input *string) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescription_branchKeyVersion_ToDafny(input *string) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetBranchKeyIdFromDdbKeyInput_ddbKey_ToDafny(input map[string]dynamodbtypes.AttributeValue) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_Key_key_ToDafny(key), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_Key_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetBranchKeyIdFromDdbKeyOutput_branchKeyId_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbEncryptionException_message_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_keyFieldName_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_cacheTTL_ToDafny(input int32) int32 {
+	return func() int32 {
+
+		return input
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_cache_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.CacheType) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		switch input.(type) {
+		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberDefault:
+			var inputToConversion = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_Default_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberDefault).Value)
+			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_Default_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DefaultCache)))
+		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberNo:
+			var inputToConversion = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_No_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberNo).Value)
+			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_No_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.NoCache)))
+		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberSingleThreaded:
+			var inputToConversion = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_SingleThreaded_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberSingleThreaded).Value)
+			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_SingleThreaded_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.SingleThreadedCache)))
+		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberMultiThreaded:
+			var inputToConversion = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_MultiThreaded_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberMultiThreaded).Value)
+			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_MultiThreaded_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.MultiThreadedCache)))
+		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberStormTracking:
+			var inputToConversion = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_StormTracking_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberStormTracking).Value)
+			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_StormTracking_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.StormTrackingCache)))
+		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberShared:
+			var inputToConversion = func() Wrappers.Option {
+				if (input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberShared).Value) == nil {
+					return Wrappers.Companion_Option_.Create_None_()
+				}
+				return Wrappers.Companion_Option_.Create_Some_(awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsCache_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberShared).Value))
+			}()
+			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_Shared_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache)))
+
+		default:
+			panic("Unhandled union type")
+		}
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_partitionId_ToDafny(input *string) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_keyId_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_cacheTTL_ToDafny(input int32) int32 {
+	return func() int32 {
+
+		return input
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_cache_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.CacheType) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		switch input.(type) {
+		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberDefault:
+			var inputToConversion = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_Default_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberDefault).Value)
+			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_Default_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DefaultCache)))
+		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberNo:
+			var inputToConversion = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_No_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberNo).Value)
+			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_No_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.NoCache)))
+		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberSingleThreaded:
+			var inputToConversion = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_SingleThreaded_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberSingleThreaded).Value)
+			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_SingleThreaded_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.SingleThreadedCache)))
+		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberMultiThreaded:
+			var inputToConversion = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_MultiThreaded_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberMultiThreaded).Value)
+			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_MultiThreaded_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.MultiThreadedCache)))
+		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberStormTracking:
+			var inputToConversion = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_StormTracking_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberStormTracking).Value)
+			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_StormTracking_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.StormTrackingCache)))
+		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberShared:
+			var inputToConversion = func() Wrappers.Option {
+				if (input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberShared).Value) == nil {
+					return Wrappers.Companion_Option_.Create_None_()
+				}
+				return Wrappers.Companion_Option_.Create_Some_(awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsCache_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberShared).Value))
+			}()
+			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_Shared_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache)))
+
+		default:
+			panic("Unhandled union type")
+		}
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_partitionId_ToDafny(input *string) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconKeySource_single_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SingleKeyStore) Wrappers.Option {
+	return func() Wrappers.Option {
+
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_SingleKeyStore_.Create_SingleKeyStore_(Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_keyId_ToDafny(input.KeyId), Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_cacheTTL_ToDafny(input.CacheTTL), Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_cache_ToDafny(input.Cache), Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_partitionId_ToDafny(input.PartitionId)))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconKeySource_multi_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.MultiKeyStore) Wrappers.Option {
+	return func() Wrappers.Option {
+
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_MultiKeyStore_.Create_MultiKeyStore_(Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_keyFieldName_ToDafny(input.KeyFieldName), Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_cacheTTL_ToDafny(input.CacheTTL), Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_cache_ToDafny(input.Cache), Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_partitionId_ToDafny(input.PartitionId)))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_Shared_other_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SharedSet_other_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_partOnly_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PartOnly) Wrappers.Option {
+	return func() Wrappers.Option {
+
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_PartOnly_.Create_PartOnly_())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_shared_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Shared) Wrappers.Option {
+	return func() Wrappers.Option {
+
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Shared_.Create_Shared_(Aws_cryptography_dbEncryptionSdk_dynamoDb_Shared_other_ToDafny(input.Other)))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_asSet_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.AsSet) Wrappers.Option {
+	return func() Wrappers.Option {
+
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_AsSet_.Create_AsSet_())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_sharedSet_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SharedSet) Wrappers.Option {
+	return func() Wrappers.Option {
+
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_SharedSet_.Create_SharedSet_(Aws_cryptography_dbEncryptionSdk_dynamoDb_SharedSet_other_ToDafny(input.Other)))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorPart_name_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorPart_required_ToDafny(input bool) bool {
+	return func() bool {
+
+		return input
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_Constructor_parts_ToDafny(input []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.ConstructorPart) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorPartList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return dafny.SeqOf(fieldValue...)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorPartList_member_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.ConstructorPart) AwsCryptographyDbEncryptionSdkDynamoDbTypes.ConstructorPart {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.ConstructorPart {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_ConstructorPart_.Create_ConstructorPart_(Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorPart_name_ToDafny(input.Name), Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorPart_required_ToDafny(input.Required))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPart_name_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPart_prefix_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_name_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_prefix_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_loc_ToDafny(input *string) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_name_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_split_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_encrypted_ToDafny(input []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedPart) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPartsList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPartsList_member_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedPart) AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedPart {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedPart {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_EncryptedPart_.Create_EncryptedPart_(Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPart_name_ToDafny(input.Name), Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPart_prefix_ToDafny(input.Prefix))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_signed_ToDafny(input []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SignedPart) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPartsList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPartsList_member_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SignedPart) AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPart {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPart {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_SignedPart_.Create_SignedPart_(Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_name_ToDafny(input.Name), Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_prefix_ToDafny(input.Prefix), Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_loc_ToDafny(input.Loc))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_constructors_ToDafny(input []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Constructor) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorList_member_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Constructor) AwsCryptographyDbEncryptionSdkDynamoDbTypes.Constructor {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.Constructor {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Constructor_.Create_Constructor_(Aws_cryptography_dbEncryptionSdk_dynamoDb_Constructor_parts_ToDafny(input.Parts))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_name_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_length_ToDafny(input int32) int32 {
+	return func() int32 {
+
+		return input
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_loc_ToDafny(input *string) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_style_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyle) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		switch input.(type) {
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMemberpartOnly:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_partOnly_ToDafny(input.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMemberpartOnly).Value)
+			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_BeaconStyle_{}.Create_partOnly_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.PartOnly)))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMembershared:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_shared_ToDafny(input.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMembershared).Value)
+			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_BeaconStyle_{}.Create_shared_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Shared)))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMemberasSet:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_asSet_ToDafny(input.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMemberasSet).Value)
+			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_BeaconStyle_{}.Create_asSet_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.AsSet)))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMembersharedSet:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_sharedSet_ToDafny(input.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMembersharedSet).Value)
+			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_BeaconStyle_{}.Create_sharedSet_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SharedSet)))
+
+		default:
+			panic("Unhandled union type")
+		}
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_Insert_literal_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetPrefix_length_ToDafny(input int32) int32 {
+	return func() int32 {
+
+		return input
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegment_split_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegment_index_ToDafny(input int32) int32 {
+	return func() int32 {
+
+		return input
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_split_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_low_ToDafny(input int32) int32 {
+	return func() int32 {
+
+		return input
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_high_ToDafny(input int32) int32 {
+	return func() int32 {
+
+		return input
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSubstring_low_ToDafny(input int32) int32 {
+	return func() int32 {
+
+		return input
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSubstring_high_ToDafny(input int32) int32 {
+	return func() int32 {
+
+		return input
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSuffix_length_ToDafny(input int32) int32 {
+	return func() int32 {
+
+		return input
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_upper_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Upper) Wrappers.Option {
+	return func() Wrappers.Option {
+
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Upper_.Create_Upper_())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_lower_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Lower) Wrappers.Option {
+	return func() Wrappers.Option {
+
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Lower_.Create_Lower_())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_insert_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Insert) Wrappers.Option {
+	return func() Wrappers.Option {
+
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Insert_.Create_Insert_(Aws_cryptography_dbEncryptionSdk_dynamoDb_Insert_literal_ToDafny(input.Literal)))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_prefix_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetPrefix) Wrappers.Option {
+	return func() Wrappers.Option {
+
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_GetPrefix_.Create_GetPrefix_(Aws_cryptography_dbEncryptionSdk_dynamoDb_GetPrefix_length_ToDafny(input.Length)))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_suffix_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSuffix) Wrappers.Option {
+	return func() Wrappers.Option {
+
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_GetSuffix_.Create_GetSuffix_(Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSuffix_length_ToDafny(input.Length)))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_substring_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSubstring) Wrappers.Option {
+	return func() Wrappers.Option {
+
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_GetSubstring_.Create_GetSubstring_(Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSubstring_low_ToDafny(input.Low), Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSubstring_high_ToDafny(input.High)))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_segment_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSegment) Wrappers.Option {
+	return func() Wrappers.Option {
+
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_GetSegment_.Create_GetSegment_(Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegment_split_ToDafny(input.Split), Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegment_index_ToDafny(input.Index)))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_segments_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSegments) Wrappers.Option {
+	return func() Wrappers.Option {
+
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_GetSegments_.Create_GetSegments_(Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_split_ToDafny(input.Split), Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_low_ToDafny(input.Low), Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_high_ToDafny(input.High)))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPart_loc_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPart_trans_ToDafny(input []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransform) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransformList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransformList_member_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransform) AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform {
+
+		switch input.(type) {
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberupper:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_upper_ToDafny(input.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberupper).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_VirtualTransform_{}.Create_upper_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Upper))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberlower:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_lower_ToDafny(input.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberlower).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_VirtualTransform_{}.Create_lower_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Lower))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberinsert:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_insert_ToDafny(input.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberinsert).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_VirtualTransform_{}.Create_insert_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Insert))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberprefix:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_prefix_ToDafny(input.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberprefix).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_VirtualTransform_{}.Create_prefix_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetPrefix))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersuffix:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_suffix_ToDafny(input.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersuffix).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_VirtualTransform_{}.Create_suffix_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSuffix))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersubstring:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_substring_ToDafny(input.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersubstring).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_VirtualTransform_{}.Create_substring_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSubstring))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersegment:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_segment_ToDafny(input.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersegment).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_VirtualTransform_{}.Create_segment_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegment))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersegments:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_segments_ToDafny(input.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersegments).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_VirtualTransform_{}.Create_segments_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegments))
+
+		default:
+			panic("Unhandled union type")
+		}
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualField_name_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualField_parts_ToDafny(input []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualPart) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPartList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return dafny.SeqOf(fieldValue...)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPartList_member_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualPart) AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualPart {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualPart {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_VirtualPart_.Create_VirtualPart_(Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPart_loc_ToDafny(input.Loc), Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPart_trans_ToDafny(input.Trans))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_version_ToDafny(input int32) int32 {
+	return func() int32 {
+
+		return input
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_keyStore_ToDafny(input *awscryptographykeystoresmithygenerated.Client) AwsCryptographyKeyStoreTypes.IKeyStoreClient {
+	return input.DafnyClient
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_keySource_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySource) AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconKeySource {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconKeySource {
+
+		switch input.(type) {
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySourceMembersingle:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconKeySource_single_ToDafny(input.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySourceMembersingle).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_BeaconKeySource_{}.Create_single_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SingleKeyStore))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySourceMembermulti:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconKeySource_multi_ToDafny(input.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySourceMembermulti).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_BeaconKeySource_{}.Create_multi_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.MultiKeyStore))
+
+		default:
+			panic("Unhandled union type")
+		}
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_standardBeacons_ToDafny(input []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.StandardBeacon) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeaconList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return dafny.SeqOf(fieldValue...)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeaconList_member_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.StandardBeacon) AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_StandardBeacon_.Create_StandardBeacon_(Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_name_ToDafny(input.Name), Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_length_ToDafny(input.Length), Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_loc_ToDafny(input.Loc), Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_style_ToDafny(input.Style))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_compoundBeacons_ToDafny(input []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CompoundBeacon) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeaconList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeaconList_member_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CompoundBeacon) AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeacon {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeacon {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_CompoundBeacon_.Create_CompoundBeacon_(Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_name_ToDafny(input.Name), Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_split_ToDafny(input.Split), Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_encrypted_ToDafny(input.Encrypted), Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_signed_ToDafny(input.Signed), Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_constructors_ToDafny(input.Constructors))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_virtualFields_ToDafny(input []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualField) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualFieldList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualFieldList_member_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualField) AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualField {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualField {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_VirtualField_.Create_VirtualField_(Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualField_name_ToDafny(input.Name), Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualField_parts_ToDafny(input.Parts))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_encryptedParts_ToDafny(input []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedPart) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPartsList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_signedParts_ToDafny(input []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SignedPart) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPartsList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_policy_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyPolicy) AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyPolicy {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyPolicy {
+
+		var index int
+		for _, enumVal := range input.Values() {
+			index++
+			if enumVal == input {
+				break
+			}
+			if index == len(input.Values()) {
+				panic("Input value did not found in enum values")
+			}
+
+		}
+		var enum interface{}
+		for allEnums, i := dafny.Iterate(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_LegacyPolicy_{}.AllSingletonConstructors()), 0; i < index; i++ {
+			var ok bool
+			enum, ok = allEnums()
+			if !ok {
+				break
+			}
+		}
+		return enum.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyPolicy)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_attributeActionsOnEncrypt_ToDafny(input map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_key_ToDafny(key), Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_key_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_value_ToDafny(input awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction {
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction {
+
+		var index int
+		for _, enumVal := range input.Values() {
+			index++
+			if enumVal == input {
+				break
+			}
+			if index == len(input.Values()) {
+				panic("Input value did not found in enum values")
+			}
+
+		}
+		var enum interface{}
+		for allEnums, i := dafny.Iterate(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CompanionStruct_CryptoAction_{}.AllSingletonConstructors()), 0; i < index; i++ {
+			var ok bool
+			enum, ok = allEnums()
+			if !ok {
+				break
+			}
+		}
+		return enum.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_defaultAttributeFlag_ToDafny(input *awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		var index int
+		for _, enumVal := range input.Values() {
+			index++
+			if enumVal == *input {
+				break
+			}
+
+		}
+		var enum interface{}
+		for allEnums, i := dafny.Iterate(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CompanionStruct_CryptoAction_{}.AllSingletonConstructors()), 0; i < index; i++ {
+			var ok bool
+			enum, ok = allEnums()
+			if !ok {
+				break
+			}
+		}
+		return Wrappers.Companion_Option_.Create_Some_(enum.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SearchConfig_versions_ToDafny(input []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconVersion) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersionList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return dafny.SeqOf(fieldValue...)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersionList_member_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconVersion) AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_BeaconVersion_.Create_BeaconVersion_(Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_version_ToDafny(input.Version), Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_keyStore_ToDafny(input.KeyStore), Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_keySource_ToDafny(input.KeySource), Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_standardBeacons_ToDafny(input.StandardBeacons), Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_compoundBeacons_ToDafny(input.CompoundBeacons), Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_virtualFields_ToDafny(input.VirtualFields), Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_encryptedParts_ToDafny(input.EncryptedParts), Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_signedParts_ToDafny(input.SignedParts))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SearchConfig_writeVersion_ToDafny(input int32) int32 {
+	return func() int32 {
+
+		return input
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_logicalTableName_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_partitionKeyName_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_sortKeyName_ToDafny(input *string) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_search_ToDafny(input *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SearchConfig) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_SearchConfig_.Create_SearchConfig_(Aws_cryptography_dbEncryptionSdk_dynamoDb_SearchConfig_versions_ToDafny(input.Versions), Aws_cryptography_dbEncryptionSdk_dynamoDb_SearchConfig_writeVersion_ToDafny(input.WriteVersion)))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_attributeActionsOnEncrypt_ToDafny(input map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_key_ToDafny(key), Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_allowedUnsignedAttributes_ToDafny(input []string) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeNameList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_allowedUnsignedAttributePrefix_ToDafny(input *string) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_algorithmSuiteId_ToDafny(input *awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		var index int
+		for _, enumVal := range input.Values() {
+			index++
+			if enumVal == *input {
+				break
+			}
+
+		}
+		var enum interface{}
+		for allEnums, i := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_DBEAlgorithmSuiteId_{}.AllSingletonConstructors()), 0; i < index; i++ {
+			var ok bool
+			enum, ok = allEnums()
+			if !ok {
+				break
+			}
+		}
+		return Wrappers.Companion_Option_.Create_Some_(enum.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_legacyOverride_ToDafny(input *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyOverride) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_LegacyOverride_.Create_LegacyOverride_(Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_policy_ToDafny(input.Policy), LegacyDynamoDbEncryptor_ToDafny(input.Encryptor), Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_attributeActionsOnEncrypt_ToDafny(input.AttributeActionsOnEncrypt), Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_defaultAttributeFlag_ToDafny(input.DefaultAttributeFlag)))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_plaintextOverride_ToDafny(input *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PlaintextOverride) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		var index int
+		for _, enumVal := range input.Values() {
+			index++
+			if enumVal == *input {
+				break
+			}
+
+		}
+		var enum interface{}
+		for allEnums, i := dafny.Iterate(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_PlaintextOverride_{}.AllSingletonConstructors()), 0; i < index; i++ {
+			var ok bool
+			enum, ok = allEnums()
+			if !ok {
+				break
+			}
+		}
+		return Wrappers.Companion_Option_.Create_Some_(enum.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTablesEncryptionConfig_tableEncryptionConfigs_ToDafny(input map[string]awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbTableEncryptionConfig) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfigList_key_ToDafny(key), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfigList_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfigList_key_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfigList_value_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbTableEncryptionConfig) AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_DynamoDbTableEncryptionConfig_.Create_DynamoDbTableEncryptionConfig_(Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_logicalTableName_ToDafny(input.LogicalTableName), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_partitionKeyName_ToDafny(input.PartitionKeyName), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_sortKeyName_ToDafny(input.SortKeyName), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_search_ToDafny(input.Search), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_attributeActionsOnEncrypt_ToDafny(input.AttributeActionsOnEncrypt), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_allowedUnsignedAttributes_ToDafny(input.AllowedUnsignedAttributes), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_allowedUnsignedAttributePrefix_ToDafny(input.AllowedUnsignedAttributePrefix), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_algorithmSuiteId_ToDafny(input.AlgorithmSuiteId), func() Wrappers.Option {
+			if (input.Keyring) == nil {
+				return Wrappers.Companion_Option_.Create_None_()
+			}
+			return Wrappers.Companion_Option_.Create_Some_(awscryptographymaterialproviderssmithygenerated.Keyring_ToDafny(input.Keyring))
+		}(), func() Wrappers.Option {
+			if (input.Cmm) == nil {
+				return Wrappers.Companion_Option_.Create_None_()
+			}
+			return Wrappers.Companion_Option_.Create_Some_(awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsManager_ToDafny(input.Cmm))
+		}(), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_legacyOverride_ToDafny(input.LegacyOverride), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_plaintextOverride_ToDafny(input.PlaintextOverride))
+	}()
+}
diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/to_native.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/to_native.go
new file mode 100644
index 000000000..b0db0fe5e
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/to_native.go
@@ -0,0 +1,1658 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbsmithygenerated
+
+import (
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/comamazonawsdynamodbsmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographykeystoresmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/awscryptographyprimitivessmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes"
+	dynamodbtypes "github.com/aws/aws-sdk-go-v2/service/dynamodb/types"
+	"github.com/dafny-lang/DafnyRuntimeGo/v4/dafny"
+)
+
+func CreateDynamoDbEncryptionBranchKeyIdSupplierInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTypes.CreateDynamoDbEncryptionBranchKeyIdSupplierInput) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CreateDynamoDbEncryptionBranchKeyIdSupplierInput {
+
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CreateDynamoDbEncryptionBranchKeyIdSupplierInput{DdbKeyBranchKeyIdSupplier: DynamoDbKeyBranchKeyIdSupplier_FromDafny(dafnyInput.Dtor_ddbKeyBranchKeyIdSupplier())}
+
+}
+
+func CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTypes.CreateDynamoDbEncryptionBranchKeyIdSupplierOutput) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CreateDynamoDbEncryptionBranchKeyIdSupplierOutput {
+
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CreateDynamoDbEncryptionBranchKeyIdSupplierOutput{BranchKeyIdSupplier: awscryptographymaterialproviderssmithygenerated.BranchKeyIdSupplier_FromDafny(dafnyOutput.Dtor_branchKeyIdSupplier())}
+
+}
+
+func GetEncryptedDataKeyDescriptionInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionInput) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetEncryptedDataKeyDescriptionInput {
+
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetEncryptedDataKeyDescriptionInput{Input: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionInput_input_FromDafny(dafnyInput.Dtor_input())}
+
+}
+
+func GetEncryptedDataKeyDescriptionOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionOutput) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetEncryptedDataKeyDescriptionOutput {
+
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetEncryptedDataKeyDescriptionOutput{EncryptedDataKeyDescriptionOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionOutput_EncryptedDataKeyDescriptionOutput_FromDafny(dafnyOutput.Dtor_EncryptedDataKeyDescriptionOutput())}
+
+}
+
+func GetBranchKeyIdFromDdbKeyInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetBranchKeyIdFromDdbKeyInput) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetBranchKeyIdFromDdbKeyInput {
+
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetBranchKeyIdFromDdbKeyInput{DdbKey: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetBranchKeyIdFromDdbKeyInput_ddbKey_FromDafny(dafnyInput.Dtor_ddbKey())}
+
+}
+
+func GetBranchKeyIdFromDdbKeyOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetBranchKeyIdFromDdbKeyOutput) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetBranchKeyIdFromDdbKeyOutput {
+
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetBranchKeyIdFromDdbKeyOutput{BranchKeyId: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetBranchKeyIdFromDdbKeyOutput_branchKeyId_FromDafny(dafnyOutput.Dtor_branchKeyId())}
+
+}
+
+func DynamoDbKeyBranchKeyIdSupplier_FromDafny(dafnyResource AwsCryptographyDbEncryptionSdkDynamoDbTypes.IDynamoDbKeyBranchKeyIdSupplier) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.IDynamoDbKeyBranchKeyIdSupplier {
+	val, ok := dafnyResource.(*DynamoDbKeyBranchKeyIdSupplierNativeWrapper)
+	if ok {
+		return val.Impl
+	}
+
+	return &DynamoDbKeyBranchKeyIdSupplier{dafnyResource}
+}
+
+func LegacyDynamoDbEncryptor_FromDafny(dafnyResource AwsCryptographyDbEncryptionSdkDynamoDbTypes.ILegacyDynamoDbEncryptor) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.ILegacyDynamoDbEncryptor {
+	val, ok := dafnyResource.(*LegacyDynamoDbEncryptorNativeWrapper)
+	if ok {
+		return val.Impl
+	}
+
+	return &LegacyDynamoDbEncryptor{dafnyResource}
+}
+
+func DynamoDbEncryptionException_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbEncryptionException {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbEncryptionException{Message: Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbEncryptionException_message_FromDafny(dafnyOutput.Dtor_message())}
+
+}
+
+func CollectionOfErrors_Output_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CollectionOfErrors {
+	listOfErrors := dafnyOutput.Dtor_list()
+	message := dafnyOutput.Dtor_message()
+	t := awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CollectionOfErrors{}
+	for i := dafny.Iterate(listOfErrors); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		err := val.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error)
+		t.ListOfErrors = append(t.ListOfErrors, Error_FromDafny(err))
+
+	}
+	t.Message = func() string {
+		a := UTF8.Encode(message.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+		return s
+	}()
+	return t
+}
+func OpaqueError_Output_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.OpaqueError {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.OpaqueError{
+		ErrObject: dafnyOutput.Dtor_obj(),
+	}
+}
+
+func Error_FromDafny(err AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) error {
+	// Service Errors
+	if err.Is_DynamoDbEncryptionException() {
+		return DynamoDbEncryptionException_FromDafny(err)
+	}
+
+	//DependentErrors
+	if err.Is_AwsCryptographyPrimitives() {
+		return awscryptographyprimitivessmithygenerated.Error_FromDafny(err.Dtor_AwsCryptographyPrimitives())
+	}
+
+	if err.Is_ComAmazonawsDynamodb() {
+		return comamazonawsdynamodbsmithygenerated.Error_FromDafny(err.Dtor_ComAmazonawsDynamodb())
+	}
+
+	if err.Is_AwsCryptographyMaterialProviders() {
+		return awscryptographymaterialproviderssmithygenerated.Error_FromDafny(err.Dtor_AwsCryptographyMaterialProviders())
+	}
+
+	if err.Is_AwsCryptographyDbEncryptionSdkStructuredEncryption() {
+		return awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.Error_FromDafny(err.Dtor_AwsCryptographyDbEncryptionSdkStructuredEncryption())
+	}
+
+	if err.Is_AwsCryptographyKeyStore() {
+		return awscryptographykeystoresmithygenerated.Error_FromDafny(err.Dtor_AwsCryptographyKeyStore())
+	}
+
+	//Unmodelled Errors
+	if err.Is_CollectionOfErrors() {
+		return CollectionOfErrors_Output_FromDafny(err)
+	}
+
+	return OpaqueError_Output_FromDafny(err)
+}
+
+func DynamoDbEncryptionConfig_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbEncryptionConfig) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbEncryptionConfig {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbEncryptionConfig{}
+
+}
+
+func AsSet_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.AsSet {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.AsSet{}
+
+}
+
+func MultiKeyStore_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.MultiKeyStore {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.MultiKeyStore{KeyFieldName: Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_keyFieldName_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.MultiKeyStore).Dtor_keyFieldName()),
+		CacheTTL:    Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_cacheTTL_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.MultiKeyStore).Dtor_cacheTTL()),
+		Cache:       Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_cache_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.MultiKeyStore).Dtor_cache().UnwrapOr(nil)),
+		PartitionId: Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_partitionId_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.MultiKeyStore).Dtor_partitionId().UnwrapOr(nil)),
+	}
+
+}
+
+func SingleKeyStore_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SingleKeyStore {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SingleKeyStore{KeyId: Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_keyId_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SingleKeyStore).Dtor_keyId()),
+		CacheTTL:    Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_cacheTTL_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SingleKeyStore).Dtor_cacheTTL()),
+		Cache:       Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_cache_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SingleKeyStore).Dtor_cache().UnwrapOr(nil)),
+		PartitionId: Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_partitionId_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SingleKeyStore).Dtor_partitionId().UnwrapOr(nil)),
+	}
+
+}
+
+func BeaconKeySource_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySource {
+	var union awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySource
+
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconKeySource)).Is_single() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySourceMembersingle{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconKeySource_single_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconKeySource)).Dtor_single())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconKeySource)).Is_multi() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySourceMembermulti{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconKeySource_multi_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconKeySource)).Dtor_multi())),
+		}
+	}
+
+	return union
+
+}
+
+func PartOnly_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PartOnly {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PartOnly{}
+
+}
+
+func Shared_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Shared {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Shared{Other: Aws_cryptography_dbEncryptionSdk_dynamoDb_Shared_other_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Shared).Dtor_other())}
+
+}
+
+func SharedSet_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SharedSet {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SharedSet{Other: Aws_cryptography_dbEncryptionSdk_dynamoDb_SharedSet_other_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SharedSet).Dtor_other())}
+
+}
+
+func BeaconStyle_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyle {
+	var union awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyle
+
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle)).Is_partOnly() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMemberpartOnly{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_partOnly_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle)).Dtor_partOnly())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle)).Is_shared() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMembershared{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_shared_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle)).Dtor_shared())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle)).Is_asSet() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMemberasSet{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_asSet_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle)).Dtor_asSet())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle)).Is_sharedSet() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMembersharedSet{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_sharedSet_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle)).Dtor_sharedSet())),
+		}
+	}
+
+	return union
+
+}
+
+func ConstructorPart_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.ConstructorPart {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.ConstructorPart{Name: Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorPart_name_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.ConstructorPart).Dtor_name()),
+		Required: Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorPart_required_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.ConstructorPart).Dtor_required()),
+	}
+
+}
+
+func Constructor_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Constructor {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Constructor{Parts: Aws_cryptography_dbEncryptionSdk_dynamoDb_Constructor_parts_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Constructor).Dtor_parts())}
+
+}
+
+func EncryptedPart_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedPart {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedPart{Name: Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPart_name_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedPart).Dtor_name()),
+		Prefix: Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPart_prefix_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedPart).Dtor_prefix()),
+	}
+
+}
+
+func SignedPart_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SignedPart {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SignedPart{Name: Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_name_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPart).Dtor_name()),
+		Prefix: Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_prefix_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPart).Dtor_prefix()),
+		Loc:    Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_loc_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPart).Dtor_loc().UnwrapOr(nil)),
+	}
+
+}
+
+func CompoundBeacon_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CompoundBeacon {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CompoundBeacon{Name: Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_name_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeacon).Dtor_name()),
+		Split:        Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_split_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeacon).Dtor_split()),
+		Encrypted:    Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_encrypted_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeacon).Dtor_encrypted().UnwrapOr(nil)),
+		Signed:       Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_signed_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeacon).Dtor_signed().UnwrapOr(nil)),
+		Constructors: Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_constructors_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeacon).Dtor_constructors().UnwrapOr(nil)),
+	}
+
+}
+
+func StandardBeacon_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.StandardBeacon {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.StandardBeacon{Name: Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_name_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon).Dtor_name()),
+		Length: Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_length_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon).Dtor_length()),
+		Loc:    Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_loc_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon).Dtor_loc().UnwrapOr(nil)),
+		Style:  Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_style_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon).Dtor_style().UnwrapOr(nil)),
+	}
+
+}
+
+func Insert_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Insert {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Insert{Literal: Aws_cryptography_dbEncryptionSdk_dynamoDb_Insert_literal_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Insert).Dtor_literal())}
+
+}
+
+func Lower_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Lower {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Lower{}
+
+}
+
+func GetPrefix_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetPrefix {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetPrefix{Length: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetPrefix_length_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetPrefix).Dtor_length())}
+
+}
+
+func GetSegment_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSegment {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSegment{Split: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegment_split_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegment).Dtor_split()),
+		Index: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegment_index_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegment).Dtor_index()),
+	}
+
+}
+
+func GetSegments_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSegments {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSegments{Split: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_split_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegments).Dtor_split()),
+		Low:  Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_low_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegments).Dtor_low()),
+		High: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_high_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegments).Dtor_high()),
+	}
+
+}
+
+func GetSubstring_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSubstring {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSubstring{Low: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSubstring_low_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSubstring).Dtor_low()),
+		High: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSubstring_high_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSubstring).Dtor_high()),
+	}
+
+}
+
+func GetSuffix_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSuffix {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSuffix{Length: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSuffix_length_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSuffix).Dtor_length())}
+
+}
+
+func Upper_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Upper {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Upper{}
+
+}
+
+func VirtualTransform_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransform {
+	var union awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransform
+
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Is_upper() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberupper{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_upper_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Dtor_upper())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Is_lower() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberlower{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_lower_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Dtor_lower())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Is_insert() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberinsert{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_insert_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Dtor_insert())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Is_prefix() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberprefix{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_prefix_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Dtor_prefix())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Is_suffix() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersuffix{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_suffix_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Dtor_suffix())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Is_substring() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersubstring{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_substring_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Dtor_substring())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Is_segment() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersegment{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_segment_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Dtor_segment())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Is_segments() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersegments{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_segments_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Dtor_segments())),
+		}
+	}
+
+	return union
+
+}
+
+func VirtualPart_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualPart {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualPart{Loc: Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPart_loc_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualPart).Dtor_loc()),
+		Trans: Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPart_trans_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualPart).Dtor_trans().UnwrapOr(nil)),
+	}
+
+}
+
+func VirtualField_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualField {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualField{Name: Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualField_name_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualField).Dtor_name()),
+		Parts: Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualField_parts_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualField).Dtor_parts()),
+	}
+
+}
+
+func BeaconVersion_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconVersion {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconVersion{Version: Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_version_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion).Dtor_version()),
+		KeyStore:        Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_keyStore_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion).Dtor_keyStore()),
+		KeySource:       Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_keySource_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion).Dtor_keySource()),
+		StandardBeacons: Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_standardBeacons_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion).Dtor_standardBeacons()),
+		CompoundBeacons: Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_compoundBeacons_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion).Dtor_compoundBeacons().UnwrapOr(nil)),
+		VirtualFields:   Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_virtualFields_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion).Dtor_virtualFields().UnwrapOr(nil)),
+		EncryptedParts:  Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_encryptedParts_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion).Dtor_encryptedParts().UnwrapOr(nil)),
+		SignedParts:     Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_signedParts_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion).Dtor_signedParts().UnwrapOr(nil)),
+	}
+
+}
+
+func LegacyPolicy_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyPolicy {
+	return func() awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyPolicy {
+		var u awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyPolicy
+		inputEnum := input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyPolicy)
+		index := -1
+		for allEnums := dafny.Iterate(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_LegacyPolicy_{}.AllSingletonConstructors()); ; {
+			enum, ok := allEnums()
+			if ok {
+				index++
+				if enum.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyPolicy).Equals(inputEnum) {
+					break
+				}
+			}
+		}
+
+		return u.Values()[index]
+	}()
+
+}
+
+func LegacyOverride_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyOverride {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyOverride{Policy: Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_policy_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyOverride).Dtor_policy()),
+		Encryptor:                 LegacyDynamoDbEncryptor_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyOverride).Dtor_encryptor()),
+		AttributeActionsOnEncrypt: Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_attributeActionsOnEncrypt_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyOverride).Dtor_attributeActionsOnEncrypt()),
+		DefaultAttributeFlag:      Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_defaultAttributeFlag_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyOverride).Dtor_defaultAttributeFlag().UnwrapOr(nil)),
+	}
+
+}
+
+func PlaintextOverride_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PlaintextOverride {
+	return func() awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PlaintextOverride {
+		var u awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PlaintextOverride
+		inputEnum := input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride)
+		index := -1
+		for allEnums := dafny.Iterate(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_PlaintextOverride_{}.AllSingletonConstructors()); ; {
+			enum, ok := allEnums()
+			if ok {
+				index++
+				if enum.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride).Equals(inputEnum) {
+					break
+				}
+			}
+		}
+
+		return u.Values()[index]
+	}()
+
+}
+
+func SearchConfig_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SearchConfig {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SearchConfig{Versions: Aws_cryptography_dbEncryptionSdk_dynamoDb_SearchConfig_versions_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SearchConfig).Dtor_versions()),
+		WriteVersion: Aws_cryptography_dbEncryptionSdk_dynamoDb_SearchConfig_writeVersion_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SearchConfig).Dtor_writeVersion()),
+	}
+
+}
+
+func DynamoDbTableEncryptionConfig_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbTableEncryptionConfig {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbTableEncryptionConfig{LogicalTableName: Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_logicalTableName_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_logicalTableName()),
+		PartitionKeyName:               Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_partitionKeyName_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_partitionKeyName()),
+		SortKeyName:                    Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_sortKeyName_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_sortKeyName().UnwrapOr(nil)),
+		Search:                         Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_search_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_search().UnwrapOr(nil)),
+		AttributeActionsOnEncrypt:      Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_attributeActionsOnEncrypt_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_attributeActionsOnEncrypt()),
+		AllowedUnsignedAttributes:      Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_allowedUnsignedAttributes_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_allowedUnsignedAttributes().UnwrapOr(nil)),
+		AllowedUnsignedAttributePrefix: Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_allowedUnsignedAttributePrefix_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_allowedUnsignedAttributePrefix().UnwrapOr(nil)),
+		AlgorithmSuiteId:               Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_algorithmSuiteId_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_algorithmSuiteId().UnwrapOr(nil)),
+		Keyring: func() awscryptographymaterialproviderssmithygeneratedtypes.IKeyring {
+			if input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_keyring().UnwrapOr(nil) == nil {
+				return nil
+			}
+			return awscryptographymaterialproviderssmithygenerated.Keyring_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_keyring().UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.IKeyring))
+		}(),
+		Cmm: func() awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsManager {
+			if input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_cmm().UnwrapOr(nil) == nil {
+				return nil
+			}
+			return awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsManager_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_cmm().UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager))
+		}(),
+		LegacyOverride:    Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_legacyOverride_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_legacyOverride().UnwrapOr(nil)),
+		PlaintextOverride: Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_plaintextOverride_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_plaintextOverride().UnwrapOr(nil)),
+	}
+
+}
+
+func DynamoDbTablesEncryptionConfig_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbTablesEncryptionConfig {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbTablesEncryptionConfig{TableEncryptionConfigs: Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTablesEncryptionConfig_tableEncryptionConfigs_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTablesEncryptionConfig).Dtor_tableEncryptionConfigs())}
+
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionInput_input_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetEncryptedDataKeyDescriptionUnion {
+	var union awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetEncryptedDataKeyDescriptionUnion
+
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionUnion)).Is_header() {
+		var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionUnion)).Dtor_header())
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetEncryptedDataKeyDescriptionUnionMemberheader{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionUnion_header_FromDafny(dataSource.UnwrapOr(nil))),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionUnion)).Is_item() {
+		var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionUnion)).Dtor_item())
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetEncryptedDataKeyDescriptionUnionMemberitem{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionUnion_item_FromDafny(dataSource.UnwrapOr(nil))),
+		}
+	}
+
+	return union
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionUnion_header_FromDafny(input interface{}) []byte {
+	return func() []byte {
+		if input == nil {
+			return nil
+		}
+		a := input.(dafny.Sequence).ToArray().(dafny.GoNativeArray)
+		b := make([]byte, 0, a.Length())
+		for i := uint32(0); i < a.Length(); i++ {
+			b = append(b, a.Select(i).(byte))
+		}
+		return b
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionUnion_item_FromDafny(input interface{}) map[string]dynamodbtypes.AttributeValue {
+	var m map[string]dynamodbtypes.AttributeValue = make(map[string]dynamodbtypes.AttributeValue)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionOutput_EncryptedDataKeyDescriptionOutput_FromDafny(input interface{}) []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedDataKeyDescription {
+	fieldValue := make([]awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedDataKeyDescription, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescriptionList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescriptionList_member_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedDataKeyDescription {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedDataKeyDescription{KeyProviderId: Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescription_keyProviderId_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedDataKeyDescription).Dtor_keyProviderId()),
+		KeyProviderInfo:  Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescription_keyProviderInfo_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedDataKeyDescription).Dtor_keyProviderInfo().UnwrapOr(nil)),
+		BranchKeyId:      Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescription_branchKeyId_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedDataKeyDescription).Dtor_branchKeyId().UnwrapOr(nil)),
+		BranchKeyVersion: Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescription_branchKeyVersion_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedDataKeyDescription).Dtor_branchKeyVersion().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescription_keyProviderId_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescription_keyProviderInfo_FromDafny(input interface{}) *string {
+	return func() *string {
+		if input == nil {
+			return nil
+		}
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return &s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescription_branchKeyId_FromDafny(input interface{}) *string {
+	return func() *string {
+		if input == nil {
+			return nil
+		}
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return &s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescription_branchKeyVersion_FromDafny(input interface{}) *string {
+	return func() *string {
+		if input == nil {
+			return nil
+		}
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return &s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetBranchKeyIdFromDdbKeyInput_ddbKey_FromDafny(input interface{}) map[string]dynamodbtypes.AttributeValue {
+	var m map[string]dynamodbtypes.AttributeValue = make(map[string]dynamodbtypes.AttributeValue)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_Key_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_Key_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetBranchKeyIdFromDdbKeyOutput_branchKeyId_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbEncryptionException_message_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_keyFieldName_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_cacheTTL_FromDafny(input interface{}) int32 {
+	return func() int32 {
+		var b = input.(int32)
+		return b
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_cache_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.CacheType {
+	var union awscryptographymaterialproviderssmithygeneratedtypes.CacheType
+	if input == nil {
+		return nil
+	}
+
+	if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_Default() {
+
+		union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberDefault{
+			Value: (awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_Default_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_Default())),
+		}
+	}
+	if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_No() {
+
+		union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberNo{
+			Value: (awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_No_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_No())),
+		}
+	}
+	if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_SingleThreaded() {
+
+		union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberSingleThreaded{
+			Value: (awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_SingleThreaded_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_SingleThreaded())),
+		}
+	}
+	if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_MultiThreaded() {
+
+		union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberMultiThreaded{
+			Value: (awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_MultiThreaded_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_MultiThreaded())),
+		}
+	}
+	if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_StormTracking() {
+
+		union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberStormTracking{
+			Value: (awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_StormTracking_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_StormTracking())),
+		}
+	}
+	if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_Shared() {
+
+		union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberShared{
+			Value: (awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsCache_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_Shared().(AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache))),
+		}
+	}
+
+	return union
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_partitionId_FromDafny(input interface{}) *string {
+	return func() *string {
+		if input == nil {
+			return nil
+		}
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return &s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_keyId_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_cacheTTL_FromDafny(input interface{}) int32 {
+	return func() int32 {
+		var b = input.(int32)
+		return b
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_cache_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.CacheType {
+	var union awscryptographymaterialproviderssmithygeneratedtypes.CacheType
+	if input == nil {
+		return nil
+	}
+
+	if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_Default() {
+
+		union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberDefault{
+			Value: (awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_Default_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_Default())),
+		}
+	}
+	if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_No() {
+
+		union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberNo{
+			Value: (awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_No_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_No())),
+		}
+	}
+	if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_SingleThreaded() {
+
+		union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberSingleThreaded{
+			Value: (awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_SingleThreaded_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_SingleThreaded())),
+		}
+	}
+	if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_MultiThreaded() {
+
+		union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberMultiThreaded{
+			Value: (awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_MultiThreaded_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_MultiThreaded())),
+		}
+	}
+	if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_StormTracking() {
+
+		union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberStormTracking{
+			Value: (awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_StormTracking_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_StormTracking())),
+		}
+	}
+	if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_Shared() {
+
+		union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberShared{
+			Value: (awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsCache_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_Shared().(AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache))),
+		}
+	}
+
+	return union
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_partitionId_FromDafny(input interface{}) *string {
+	return func() *string {
+		if input == nil {
+			return nil
+		}
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return &s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconKeySource_single_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SingleKeyStore {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SingleKeyStore{KeyId: Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_keyId_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SingleKeyStore).Dtor_keyId()),
+		CacheTTL:    Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_cacheTTL_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SingleKeyStore).Dtor_cacheTTL()),
+		Cache:       Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_cache_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SingleKeyStore).Dtor_cache().UnwrapOr(nil)),
+		PartitionId: Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_partitionId_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SingleKeyStore).Dtor_partitionId().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconKeySource_multi_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.MultiKeyStore {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.MultiKeyStore{KeyFieldName: Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_keyFieldName_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.MultiKeyStore).Dtor_keyFieldName()),
+		CacheTTL:    Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_cacheTTL_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.MultiKeyStore).Dtor_cacheTTL()),
+		Cache:       Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_cache_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.MultiKeyStore).Dtor_cache().UnwrapOr(nil)),
+		PartitionId: Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_partitionId_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.MultiKeyStore).Dtor_partitionId().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_Shared_other_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SharedSet_other_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_partOnly_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PartOnly {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PartOnly{}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_shared_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Shared {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Shared{Other: Aws_cryptography_dbEncryptionSdk_dynamoDb_Shared_other_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Shared).Dtor_other())}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_asSet_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.AsSet {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.AsSet{}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_sharedSet_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SharedSet {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SharedSet{Other: Aws_cryptography_dbEncryptionSdk_dynamoDb_SharedSet_other_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SharedSet).Dtor_other())}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorPart_name_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorPart_required_FromDafny(input interface{}) bool {
+	return input.(bool)
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_Constructor_parts_FromDafny(input interface{}) []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.ConstructorPart {
+	fieldValue := make([]awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.ConstructorPart, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorPartList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorPartList_member_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.ConstructorPart {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.ConstructorPart{Name: Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorPart_name_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.ConstructorPart).Dtor_name()),
+		Required: Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorPart_required_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.ConstructorPart).Dtor_required()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPart_name_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPart_prefix_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_name_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_prefix_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_loc_FromDafny(input interface{}) *string {
+	return func() *string {
+		if input == nil {
+			return nil
+		}
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return &s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_name_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_split_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_encrypted_FromDafny(input interface{}) []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedPart {
+	if input == nil {
+		return nil
+	}
+	fieldValue := make([]awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedPart, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPartsList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPartsList_member_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedPart {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedPart{Name: Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPart_name_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedPart).Dtor_name()),
+		Prefix: Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPart_prefix_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedPart).Dtor_prefix()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_signed_FromDafny(input interface{}) []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SignedPart {
+	if input == nil {
+		return nil
+	}
+	fieldValue := make([]awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SignedPart, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPartsList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPartsList_member_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SignedPart {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SignedPart{Name: Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_name_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPart).Dtor_name()),
+		Prefix: Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_prefix_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPart).Dtor_prefix()),
+		Loc:    Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_loc_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPart).Dtor_loc().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_constructors_FromDafny(input interface{}) []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Constructor {
+	if input == nil {
+		return nil
+	}
+	fieldValue := make([]awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Constructor, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorList_member_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Constructor {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Constructor{Parts: Aws_cryptography_dbEncryptionSdk_dynamoDb_Constructor_parts_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Constructor).Dtor_parts())}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_name_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_length_FromDafny(input interface{}) int32 {
+	return func() int32 {
+		var b = input.(int32)
+		return b
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_loc_FromDafny(input interface{}) *string {
+	return func() *string {
+		if input == nil {
+			return nil
+		}
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return &s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_style_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyle {
+	var union awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyle
+	if input == nil {
+		return nil
+	}
+
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle)).Is_partOnly() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMemberpartOnly{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_partOnly_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle)).Dtor_partOnly())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle)).Is_shared() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMembershared{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_shared_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle)).Dtor_shared())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle)).Is_asSet() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMemberasSet{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_asSet_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle)).Dtor_asSet())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle)).Is_sharedSet() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMembersharedSet{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_sharedSet_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle)).Dtor_sharedSet())),
+		}
+	}
+
+	return union
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_Insert_literal_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetPrefix_length_FromDafny(input interface{}) int32 {
+	return func() int32 {
+		var b = input.(int32)
+		return b
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegment_split_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegment_index_FromDafny(input interface{}) int32 {
+	return func() int32 {
+		var b = input.(int32)
+		return b
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_split_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_low_FromDafny(input interface{}) int32 {
+	return func() int32 {
+		var b = input.(int32)
+		return b
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_high_FromDafny(input interface{}) int32 {
+	return func() int32 {
+		var b = input.(int32)
+		return b
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSubstring_low_FromDafny(input interface{}) int32 {
+	return func() int32 {
+		var b = input.(int32)
+		return b
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSubstring_high_FromDafny(input interface{}) int32 {
+	return func() int32 {
+		var b = input.(int32)
+		return b
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSuffix_length_FromDafny(input interface{}) int32 {
+	return func() int32 {
+		var b = input.(int32)
+		return b
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_upper_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Upper {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Upper{}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_lower_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Lower {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Lower{}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_insert_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Insert {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Insert{Literal: Aws_cryptography_dbEncryptionSdk_dynamoDb_Insert_literal_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Insert).Dtor_literal())}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_prefix_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetPrefix {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetPrefix{Length: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetPrefix_length_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetPrefix).Dtor_length())}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_suffix_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSuffix {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSuffix{Length: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSuffix_length_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSuffix).Dtor_length())}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_substring_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSubstring {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSubstring{Low: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSubstring_low_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSubstring).Dtor_low()),
+		High: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSubstring_high_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSubstring).Dtor_high()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_segment_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSegment {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSegment{Split: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegment_split_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegment).Dtor_split()),
+		Index: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegment_index_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegment).Dtor_index()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_segments_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSegments {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSegments{Split: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_split_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegments).Dtor_split()),
+		Low:  Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_low_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegments).Dtor_low()),
+		High: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_high_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegments).Dtor_high()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPart_loc_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPart_trans_FromDafny(input interface{}) []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransform {
+	if input == nil {
+		return nil
+	}
+	fieldValue := make([]awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransform, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransformList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransformList_member_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransform {
+	var union awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransform
+
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Is_upper() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberupper{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_upper_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Dtor_upper())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Is_lower() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberlower{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_lower_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Dtor_lower())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Is_insert() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberinsert{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_insert_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Dtor_insert())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Is_prefix() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberprefix{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_prefix_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Dtor_prefix())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Is_suffix() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersuffix{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_suffix_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Dtor_suffix())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Is_substring() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersubstring{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_substring_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Dtor_substring())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Is_segment() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersegment{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_segment_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Dtor_segment())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Is_segments() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersegments{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_segments_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Dtor_segments())),
+		}
+	}
+
+	return union
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualField_name_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualField_parts_FromDafny(input interface{}) []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualPart {
+	fieldValue := make([]awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualPart, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPartList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPartList_member_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualPart {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualPart{Loc: Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPart_loc_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualPart).Dtor_loc()),
+		Trans: Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPart_trans_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualPart).Dtor_trans().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_version_FromDafny(input interface{}) int32 {
+	return func() int32 {
+		var b = input.(int32)
+		return b
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_keyStore_FromDafny(input interface{}) *awscryptographykeystoresmithygenerated.Client {
+	value, ok := input.(AwsCryptographyKeyStoreTypes.IKeyStoreClient)
+	if !ok {
+		panic("invalid type found.")
+	}
+	return &awscryptographykeystoresmithygenerated.Client{value}
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_keySource_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySource {
+	var union awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySource
+
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconKeySource)).Is_single() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySourceMembersingle{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconKeySource_single_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconKeySource)).Dtor_single())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconKeySource)).Is_multi() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySourceMembermulti{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconKeySource_multi_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconKeySource)).Dtor_multi())),
+		}
+	}
+
+	return union
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_standardBeacons_FromDafny(input interface{}) []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.StandardBeacon {
+	fieldValue := make([]awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.StandardBeacon, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeaconList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeaconList_member_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.StandardBeacon {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.StandardBeacon{Name: Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_name_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon).Dtor_name()),
+		Length: Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_length_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon).Dtor_length()),
+		Loc:    Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_loc_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon).Dtor_loc().UnwrapOr(nil)),
+		Style:  Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_style_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon).Dtor_style().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_compoundBeacons_FromDafny(input interface{}) []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CompoundBeacon {
+	if input == nil {
+		return nil
+	}
+	fieldValue := make([]awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CompoundBeacon, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeaconList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeaconList_member_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CompoundBeacon {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CompoundBeacon{Name: Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_name_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeacon).Dtor_name()),
+		Split:        Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_split_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeacon).Dtor_split()),
+		Encrypted:    Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_encrypted_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeacon).Dtor_encrypted().UnwrapOr(nil)),
+		Signed:       Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_signed_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeacon).Dtor_signed().UnwrapOr(nil)),
+		Constructors: Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_constructors_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeacon).Dtor_constructors().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_virtualFields_FromDafny(input interface{}) []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualField {
+	if input == nil {
+		return nil
+	}
+	fieldValue := make([]awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualField, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualFieldList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualFieldList_member_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualField {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualField{Name: Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualField_name_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualField).Dtor_name()),
+		Parts: Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualField_parts_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualField).Dtor_parts()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_encryptedParts_FromDafny(input interface{}) []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedPart {
+	if input == nil {
+		return nil
+	}
+	fieldValue := make([]awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedPart, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPartsList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_signedParts_FromDafny(input interface{}) []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SignedPart {
+	if input == nil {
+		return nil
+	}
+	fieldValue := make([]awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SignedPart, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPartsList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_policy_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyPolicy {
+	return func() awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyPolicy {
+		var u awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyPolicy
+		inputEnum := input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyPolicy)
+		index := -1
+		for allEnums := dafny.Iterate(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_LegacyPolicy_{}.AllSingletonConstructors()); ; {
+			enum, ok := allEnums()
+			if ok {
+				index++
+				if enum.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyPolicy).Equals(inputEnum) {
+					break
+				}
+			}
+		}
+
+		return u.Values()[index]
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_attributeActionsOnEncrypt_FromDafny(input interface{}) map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction {
+	var m map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction = make(map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_key_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_value_FromDafny(input interface{}) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction {
+	return func() awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction {
+		var u awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction
+		inputEnum := input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction)
+		index := -1
+		for allEnums := dafny.Iterate(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CompanionStruct_CryptoAction_{}.AllSingletonConstructors()); ; {
+			enum, ok := allEnums()
+			if ok {
+				index++
+				if enum.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction).Equals(inputEnum) {
+					break
+				}
+			}
+		}
+
+		return u.Values()[index]
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_defaultAttributeFlag_FromDafny(input interface{}) *awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction {
+	return func() *awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction {
+		var u awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction
+		if input == nil {
+			return nil
+		}
+		inputEnum := input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction)
+		index := -1
+		for allEnums := dafny.Iterate(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CompanionStruct_CryptoAction_{}.AllSingletonConstructors()); ; {
+			enum, ok := allEnums()
+			if ok {
+				index++
+				if enum.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction).Equals(inputEnum) {
+					break
+				}
+			}
+		}
+
+		return &u.Values()[index]
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SearchConfig_versions_FromDafny(input interface{}) []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconVersion {
+	fieldValue := make([]awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconVersion, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersionList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersionList_member_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconVersion {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconVersion{Version: Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_version_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion).Dtor_version()),
+		KeyStore:        Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_keyStore_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion).Dtor_keyStore()),
+		KeySource:       Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_keySource_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion).Dtor_keySource()),
+		StandardBeacons: Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_standardBeacons_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion).Dtor_standardBeacons()),
+		CompoundBeacons: Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_compoundBeacons_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion).Dtor_compoundBeacons().UnwrapOr(nil)),
+		VirtualFields:   Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_virtualFields_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion).Dtor_virtualFields().UnwrapOr(nil)),
+		EncryptedParts:  Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_encryptedParts_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion).Dtor_encryptedParts().UnwrapOr(nil)),
+		SignedParts:     Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_signedParts_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion).Dtor_signedParts().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SearchConfig_writeVersion_FromDafny(input interface{}) int32 {
+	return func() int32 {
+		var b = input.(int32)
+		return b
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_logicalTableName_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_partitionKeyName_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_sortKeyName_FromDafny(input interface{}) *string {
+	return func() *string {
+		if input == nil {
+			return nil
+		}
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return &s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_search_FromDafny(input interface{}) *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SearchConfig {
+	if input == nil {
+		return nil
+	}
+	return &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SearchConfig{Versions: Aws_cryptography_dbEncryptionSdk_dynamoDb_SearchConfig_versions_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SearchConfig).Dtor_versions()),
+		WriteVersion: Aws_cryptography_dbEncryptionSdk_dynamoDb_SearchConfig_writeVersion_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SearchConfig).Dtor_writeVersion()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_attributeActionsOnEncrypt_FromDafny(input interface{}) map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction {
+	var m map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction = make(map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_allowedUnsignedAttributes_FromDafny(input interface{}) []string {
+	if input == nil {
+		return nil
+	}
+	fieldValue := make([]string, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeNameList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_allowedUnsignedAttributePrefix_FromDafny(input interface{}) *string {
+	return func() *string {
+		if input == nil {
+			return nil
+		}
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return &s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_algorithmSuiteId_FromDafny(input interface{}) *awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId {
+	return func() *awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId {
+		var u awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId
+		if input == nil {
+			return nil
+		}
+		inputEnum := input.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId)
+		index := -1
+		for allEnums := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_DBEAlgorithmSuiteId_{}.AllSingletonConstructors()); ; {
+			enum, ok := allEnums()
+			if ok {
+				index++
+				if enum.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId).Equals(inputEnum) {
+					break
+				}
+			}
+		}
+
+		return &u.Values()[index]
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_legacyOverride_FromDafny(input interface{}) *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyOverride {
+	if input == nil {
+		return nil
+	}
+	return &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyOverride{Policy: Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_policy_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyOverride).Dtor_policy()),
+		Encryptor:                 LegacyDynamoDbEncryptor_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyOverride).Dtor_encryptor()),
+		AttributeActionsOnEncrypt: Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_attributeActionsOnEncrypt_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyOverride).Dtor_attributeActionsOnEncrypt()),
+		DefaultAttributeFlag:      Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_defaultAttributeFlag_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyOverride).Dtor_defaultAttributeFlag().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_plaintextOverride_FromDafny(input interface{}) *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PlaintextOverride {
+	return func() *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PlaintextOverride {
+		var u awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PlaintextOverride
+		if input == nil {
+			return nil
+		}
+		inputEnum := input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride)
+		index := -1
+		for allEnums := dafny.Iterate(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_PlaintextOverride_{}.AllSingletonConstructors()); ; {
+			enum, ok := allEnums()
+			if ok {
+				index++
+				if enum.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride).Equals(inputEnum) {
+					break
+				}
+			}
+		}
+
+		return &u.Values()[index]
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTablesEncryptionConfig_tableEncryptionConfigs_FromDafny(input interface{}) map[string]awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbTableEncryptionConfig {
+	var m map[string]awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbTableEncryptionConfig = make(map[string]awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbTableEncryptionConfig)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfigList_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfigList_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfigList_key_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfigList_value_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbTableEncryptionConfig {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbTableEncryptionConfig{LogicalTableName: Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_logicalTableName_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_logicalTableName()),
+		PartitionKeyName:               Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_partitionKeyName_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_partitionKeyName()),
+		SortKeyName:                    Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_sortKeyName_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_sortKeyName().UnwrapOr(nil)),
+		Search:                         Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_search_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_search().UnwrapOr(nil)),
+		AttributeActionsOnEncrypt:      Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_attributeActionsOnEncrypt_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_attributeActionsOnEncrypt()),
+		AllowedUnsignedAttributes:      Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_allowedUnsignedAttributes_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_allowedUnsignedAttributes().UnwrapOr(nil)),
+		AllowedUnsignedAttributePrefix: Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_allowedUnsignedAttributePrefix_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_allowedUnsignedAttributePrefix().UnwrapOr(nil)),
+		AlgorithmSuiteId:               Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_algorithmSuiteId_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_algorithmSuiteId().UnwrapOr(nil)),
+		Keyring: func() awscryptographymaterialproviderssmithygeneratedtypes.IKeyring {
+			if input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_keyring().UnwrapOr(nil) == nil {
+				return nil
+			}
+			return awscryptographymaterialproviderssmithygenerated.Keyring_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_keyring().UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.IKeyring))
+		}(),
+		Cmm: func() awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsManager {
+			if input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_cmm().UnwrapOr(nil) == nil {
+				return nil
+			}
+			return awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsManager_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_cmm().UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager))
+		}(),
+		LegacyOverride:    Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_legacyOverride_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_legacyOverride().UnwrapOr(nil)),
+		PlaintextOverride: Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_plaintextOverride_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_plaintextOverride().UnwrapOr(nil)),
+	}
+}
diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes/enums.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes/enums.go
new file mode 100644
index 000000000..53b10ce6b
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes/enums.go
@@ -0,0 +1,35 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes
+
+type LegacyPolicy string
+
+const (
+	LegacyPolicyForceLegacyEncryptAllowLegacyDecrypt   LegacyPolicy = "FORCE_LEGACY_ENCRYPT_ALLOW_LEGACY_DECRYPT"
+	LegacyPolicyForbidLegacyEncryptAllowLegacyDecrypt  LegacyPolicy = "FORBID_LEGACY_ENCRYPT_ALLOW_LEGACY_DECRYPT"
+	LegacyPolicyForbidLegacyEncryptForbidLegacyDecrypt LegacyPolicy = "FORBID_LEGACY_ENCRYPT_FORBID_LEGACY_DECRYPT"
+)
+
+func (LegacyPolicy) Values() []LegacyPolicy {
+	return []LegacyPolicy{
+		"FORCE_LEGACY_ENCRYPT_ALLOW_LEGACY_DECRYPT",
+		"FORBID_LEGACY_ENCRYPT_ALLOW_LEGACY_DECRYPT",
+		"FORBID_LEGACY_ENCRYPT_FORBID_LEGACY_DECRYPT",
+	}
+}
+
+type PlaintextOverride string
+
+const (
+	PlaintextOverrideForcePlaintextWriteAllowPlaintextRead   PlaintextOverride = "FORCE_PLAINTEXT_WRITE_ALLOW_PLAINTEXT_READ"
+	PlaintextOverrideForbidPlaintextWriteAllowPlaintextRead  PlaintextOverride = "FORBID_PLAINTEXT_WRITE_ALLOW_PLAINTEXT_READ"
+	PlaintextOverrideForbidPlaintextWriteForbidPlaintextRead PlaintextOverride = "FORBID_PLAINTEXT_WRITE_FORBID_PLAINTEXT_READ"
+)
+
+func (PlaintextOverride) Values() []PlaintextOverride {
+	return []PlaintextOverride{
+		"FORCE_PLAINTEXT_WRITE_ALLOW_PLAINTEXT_READ",
+		"FORBID_PLAINTEXT_WRITE_ALLOW_PLAINTEXT_READ",
+		"FORBID_PLAINTEXT_WRITE_FORBID_PLAINTEXT_READ",
+	}
+}
diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes/errors.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes/errors.go
new file mode 100644
index 000000000..777cb6302
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes/errors.go
@@ -0,0 +1,17 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes
+
+import (
+	"fmt"
+)
+
+type DynamoDbEncryptionException struct {
+	DynamoDbEncryptionBaseException
+	Message           string
+	ErrorCodeOverride *string
+}
+
+func (e DynamoDbEncryptionException) Error() string {
+	return fmt.Sprintf("%s: %s", e.ErrorCodeOverride, e.Message)
+}
diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes/types.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes/types.go
new file mode 100644
index 000000000..f85e3375a
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes/types.go
@@ -0,0 +1,1391 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes
+
+import (
+	"fmt"
+
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographykeystoresmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes"
+	dynamodbtypes "github.com/aws/aws-sdk-go-v2/service/dynamodb/types"
+)
+
+type DynamoDbKeyBranchKeyIdSupplierReference struct {
+}
+
+func (input DynamoDbKeyBranchKeyIdSupplierReference) Validate() error {
+
+	return nil
+}
+
+type CreateDynamoDbEncryptionBranchKeyIdSupplierInput struct {
+	DdbKeyBranchKeyIdSupplier IDynamoDbKeyBranchKeyIdSupplier
+}
+
+func (input CreateDynamoDbEncryptionBranchKeyIdSupplierInput) Validate() error {
+
+	return nil
+}
+
+type CreateDynamoDbEncryptionBranchKeyIdSupplierOutput struct {
+	BranchKeyIdSupplier awscryptographymaterialproviderssmithygeneratedtypes.IBranchKeyIdSupplier
+}
+
+func (input CreateDynamoDbEncryptionBranchKeyIdSupplierOutput) Validate() error {
+
+	return nil
+}
+
+type EncryptedDataKeyDescription struct {
+	KeyProviderId string
+
+	BranchKeyId *string
+
+	BranchKeyVersion *string
+
+	KeyProviderInfo *string
+}
+
+func (input EncryptedDataKeyDescription) Validate() error {
+
+	return nil
+}
+
+type GetEncryptedDataKeyDescriptionOutput struct {
+	EncryptedDataKeyDescriptionOutput []EncryptedDataKeyDescription
+}
+
+func (input GetEncryptedDataKeyDescriptionOutput) Validate() error {
+	if input.EncryptedDataKeyDescriptionOutput == nil {
+		return fmt.Errorf("input.EncryptedDataKeyDescriptionOutput is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionOutput_EncryptedDataKeyDescriptionOutput_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionOutput_EncryptedDataKeyDescriptionOutput_Validate()
+	}
+
+	return nil
+}
+
+func (input GetEncryptedDataKeyDescriptionOutput) Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionOutput_EncryptedDataKeyDescriptionOutput_Validate() error {
+	for _, item := range input.EncryptedDataKeyDescriptionOutput {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+
+type GetEncryptedDataKeyDescriptionInput struct {
+	Input GetEncryptedDataKeyDescriptionUnion
+}
+
+func (input GetEncryptedDataKeyDescriptionInput) Validate() error {
+	if input.Input == nil {
+		return fmt.Errorf("input.Input is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionInput_input_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionInput_input_Validate()
+	}
+
+	return nil
+}
+
+func (input GetEncryptedDataKeyDescriptionInput) Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionInput_input_Validate() error {
+	if input.Input == nil {
+		return nil
+	}
+	switch unionType := input.Input.(type) {
+	case *GetEncryptedDataKeyDescriptionUnionMemberheader:
+	case *GetEncryptedDataKeyDescriptionUnionMemberitem:
+		if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionUnion_item_Validate(unionType.Value) != nil {
+			return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionUnion_item_Validate(unionType.Value)
+		}
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input GetEncryptedDataKeyDescriptionInput) Com_amazonaws_dynamodb_AttributeMap_value_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+	case *dynamodbtypes.AttributeValueMemberL:
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input GetEncryptedDataKeyDescriptionInput) Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+		if input.Com_amazonaws_dynamodb_AttributeValue_M_Validate(unionType.Value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeValue_M_Validate(unionType.Value)
+		}
+	case *dynamodbtypes.AttributeValueMemberL:
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input GetEncryptedDataKeyDescriptionInput) Com_amazonaws_dynamodb_AttributeValue_M_Validate(Value map[string]dynamodbtypes.AttributeValue) error {
+	for key, value := range Value {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+		if input.Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(value) != nil {
+			return input.Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(value)
+		}
+	}
+
+	return nil
+}
+func (input GetEncryptedDataKeyDescriptionInput) Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+	case *dynamodbtypes.AttributeValueMemberL:
+		if input.Com_amazonaws_dynamodb_AttributeValue_L_Validate(unionType.Value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeValue_L_Validate(unionType.Value)
+		}
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input GetEncryptedDataKeyDescriptionInput) Com_amazonaws_dynamodb_AttributeValue_L_Validate(Value []dynamodbtypes.AttributeValue) error {
+	for _, item := range Value {
+		if input.Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(item) != nil {
+			return input.Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(item)
+		}
+	}
+
+	return nil
+}
+func (input GetEncryptedDataKeyDescriptionInput) Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionUnion_item_Validate(Value map[string]dynamodbtypes.AttributeValue) error {
+	for key, value := range Value {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+		if input.Com_amazonaws_dynamodb_AttributeMap_value_Validate(value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeMap_value_Validate(value)
+		}
+	}
+
+	return nil
+}
+
+type AsSet struct {
+}
+
+func (input AsSet) Validate() error {
+
+	return nil
+}
+
+type AtomicPrimitivesReference struct {
+}
+
+func (input AtomicPrimitivesReference) Validate() error {
+
+	return nil
+}
+
+type MultiKeyStore struct {
+	CacheTTL int32
+
+	KeyFieldName string
+
+	Cache awscryptographymaterialproviderssmithygeneratedtypes.CacheType
+
+	PartitionId *string
+}
+
+func (input MultiKeyStore) Validate() error {
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_cache_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_cache_Validate()
+	}
+
+	return nil
+}
+
+func (input MultiKeyStore) Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_cache_Validate() error {
+	if input.Cache == nil {
+		return nil
+	}
+	switch unionType := input.Cache.(type) {
+	case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberDefault:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberNo:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberSingleThreaded:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberMultiThreaded:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberStormTracking:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberShared:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+
+type SingleKeyStore struct {
+	CacheTTL int32
+
+	KeyId string
+
+	Cache awscryptographymaterialproviderssmithygeneratedtypes.CacheType
+
+	PartitionId *string
+}
+
+func (input SingleKeyStore) Validate() error {
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_cache_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_cache_Validate()
+	}
+
+	return nil
+}
+
+func (input SingleKeyStore) Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_cache_Validate() error {
+	if input.Cache == nil {
+		return nil
+	}
+	switch unionType := input.Cache.(type) {
+	case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberDefault:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberNo:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberSingleThreaded:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberMultiThreaded:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberStormTracking:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberShared:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+
+type PartOnly struct {
+}
+
+func (input PartOnly) Validate() error {
+
+	return nil
+}
+
+type Shared struct {
+	Other string
+}
+
+func (input Shared) Validate() error {
+
+	return nil
+}
+
+type SharedSet struct {
+	Other string
+}
+
+func (input SharedSet) Validate() error {
+
+	return nil
+}
+
+type ConstructorPart struct {
+	Name string
+
+	Required bool
+}
+
+func (input ConstructorPart) Validate() error {
+
+	return nil
+}
+
+type Constructor struct {
+	Parts []ConstructorPart
+}
+
+func (input Constructor) Validate() error {
+	if len(input.Parts) < 1 {
+		return fmt.Errorf("ConstructorPartList has a minimum length of 1 but has the length of %d.", len(input.Parts))
+	}
+	if input.Parts == nil {
+		return fmt.Errorf("input.Parts is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_Constructor_parts_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_Constructor_parts_Validate()
+	}
+
+	return nil
+}
+
+func (input Constructor) Aws_cryptography_dbEncryptionSdk_dynamoDb_Constructor_parts_Validate() error {
+	for _, item := range input.Parts {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+
+type EncryptedPart struct {
+	Name string
+
+	Prefix string
+}
+
+func (input EncryptedPart) Validate() error {
+	if len(input.Prefix) < 1 {
+		return fmt.Errorf("Prefix has a minimum length of 1 but has the length of %d.", len(input.Prefix))
+	}
+
+	return nil
+}
+
+type SignedPart struct {
+	Name string
+
+	Prefix string
+
+	Loc *string
+}
+
+func (input SignedPart) Validate() error {
+	if len(input.Prefix) < 1 {
+		return fmt.Errorf("Prefix has a minimum length of 1 but has the length of %d.", len(input.Prefix))
+	}
+	if input.Loc != nil {
+		if len(*input.Loc) < 1 {
+			return fmt.Errorf("TerminalLocation has a minimum length of 1 but has the length of %d.", len(*input.Loc))
+		}
+	}
+
+	return nil
+}
+
+type CompoundBeacon struct {
+	Name string
+
+	Split string
+
+	Constructors []Constructor
+
+	Encrypted []EncryptedPart
+
+	Signed []SignedPart
+}
+
+func (input CompoundBeacon) Validate() error {
+	if len(input.Split) < 1 {
+		return fmt.Errorf("Char has a minimum length of 1 but has the length of %d.", len(input.Split))
+	}
+	if len(input.Split) > 1 {
+		return fmt.Errorf("Char has a maximum length of 1 but has the length of %d.", len(input.Split))
+	}
+	if len(input.Constructors) < 1 {
+		return fmt.Errorf("ConstructorList has a minimum length of 1 but has the length of %d.", len(input.Constructors))
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_constructors_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_constructors_Validate()
+	}
+	if len(input.Encrypted) < 1 {
+		return fmt.Errorf("EncryptedPartsList has a minimum length of 1 but has the length of %d.", len(input.Encrypted))
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_encrypted_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_encrypted_Validate()
+	}
+	if len(input.Signed) < 1 {
+		return fmt.Errorf("SignedPartsList has a minimum length of 1 but has the length of %d.", len(input.Signed))
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_signed_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_signed_Validate()
+	}
+
+	return nil
+}
+
+func (input CompoundBeacon) Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_constructors_Validate() error {
+	for _, item := range input.Constructors {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+func (input CompoundBeacon) Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_encrypted_Validate() error {
+	for _, item := range input.Encrypted {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+func (input CompoundBeacon) Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_signed_Validate() error {
+	for _, item := range input.Signed {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+
+type KeyStoreReference struct {
+}
+
+func (input KeyStoreReference) Validate() error {
+
+	return nil
+}
+
+type StandardBeacon struct {
+	Length int32
+
+	Name string
+
+	Loc *string
+
+	Style BeaconStyle
+}
+
+func (input StandardBeacon) Validate() error {
+	if input.Length < 1 {
+		return fmt.Errorf("BeaconBitLength has a minimum of 1 but has the value of %d.", input.Length)
+	}
+	if input.Length > 63 {
+		return fmt.Errorf("BeaconBitLength has a maximum of 63 but has the value of %d.", input.Length)
+	}
+	if input.Loc != nil {
+		if len(*input.Loc) < 1 {
+			return fmt.Errorf("TerminalLocation has a minimum length of 1 but has the length of %d.", len(*input.Loc))
+		}
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_style_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_style_Validate()
+	}
+
+	return nil
+}
+
+func (input StandardBeacon) Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_style_Validate() error {
+	if input.Style == nil {
+		return nil
+	}
+	switch unionType := input.Style.(type) {
+	case *BeaconStyleMemberpartOnly:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *BeaconStyleMembershared:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *BeaconStyleMemberasSet:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *BeaconStyleMembersharedSet:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+
+type Insert struct {
+	Literal string
+}
+
+func (input Insert) Validate() error {
+
+	return nil
+}
+
+type Lower struct {
+}
+
+func (input Lower) Validate() error {
+
+	return nil
+}
+
+type GetPrefix struct {
+	Length int32
+}
+
+func (input GetPrefix) Validate() error {
+
+	return nil
+}
+
+type GetSegment struct {
+	Index int32
+
+	Split string
+}
+
+func (input GetSegment) Validate() error {
+	if len(input.Split) < 1 {
+		return fmt.Errorf("Char has a minimum length of 1 but has the length of %d.", len(input.Split))
+	}
+	if len(input.Split) > 1 {
+		return fmt.Errorf("Char has a maximum length of 1 but has the length of %d.", len(input.Split))
+	}
+
+	return nil
+}
+
+type GetSegments struct {
+	High int32
+
+	Low int32
+
+	Split string
+}
+
+func (input GetSegments) Validate() error {
+	if len(input.Split) < 1 {
+		return fmt.Errorf("Char has a minimum length of 1 but has the length of %d.", len(input.Split))
+	}
+	if len(input.Split) > 1 {
+		return fmt.Errorf("Char has a maximum length of 1 but has the length of %d.", len(input.Split))
+	}
+
+	return nil
+}
+
+type GetSubstring struct {
+	High int32
+
+	Low int32
+}
+
+func (input GetSubstring) Validate() error {
+
+	return nil
+}
+
+type GetSuffix struct {
+	Length int32
+}
+
+func (input GetSuffix) Validate() error {
+
+	return nil
+}
+
+type Upper struct {
+}
+
+func (input Upper) Validate() error {
+
+	return nil
+}
+
+type VirtualPart struct {
+	Loc string
+
+	Trans []VirtualTransform
+}
+
+func (input VirtualPart) Validate() error {
+	if len(input.Loc) < 1 {
+		return fmt.Errorf("TerminalLocation has a minimum length of 1 but has the length of %d.", len(input.Loc))
+	}
+	if len(input.Trans) < 1 {
+		return fmt.Errorf("VirtualTransformList has a minimum length of 1 but has the length of %d.", len(input.Trans))
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPart_trans_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPart_trans_Validate()
+	}
+
+	return nil
+}
+
+func (input VirtualPart) Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransformList_member_Validate(Value VirtualTransform) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *VirtualTransformMemberupper:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *VirtualTransformMemberlower:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *VirtualTransformMemberinsert:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *VirtualTransformMemberprefix:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *VirtualTransformMembersuffix:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *VirtualTransformMembersubstring:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *VirtualTransformMembersegment:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *VirtualTransformMembersegments:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input VirtualPart) Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPart_trans_Validate() error {
+	for _, item := range input.Trans {
+		if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransformList_member_Validate(item) != nil {
+			return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransformList_member_Validate(item)
+		}
+	}
+
+	return nil
+}
+
+type VirtualField struct {
+	Name string
+
+	Parts []VirtualPart
+}
+
+func (input VirtualField) Validate() error {
+	if len(input.Parts) < 1 {
+		return fmt.Errorf("VirtualPartList has a minimum length of 1 but has the length of %d.", len(input.Parts))
+	}
+	if input.Parts == nil {
+		return fmt.Errorf("input.Parts is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualField_parts_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualField_parts_Validate()
+	}
+
+	return nil
+}
+
+func (input VirtualField) Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualField_parts_Validate() error {
+	for _, item := range input.Parts {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+
+type BeaconVersion struct {
+	KeySource BeaconKeySource
+
+	KeyStore *awscryptographykeystoresmithygenerated.Client
+
+	StandardBeacons []StandardBeacon
+
+	Version int32
+
+	CompoundBeacons []CompoundBeacon
+
+	EncryptedParts []EncryptedPart
+
+	SignedParts []SignedPart
+
+	VirtualFields []VirtualField
+}
+
+func (input BeaconVersion) Validate() error {
+	if input.KeySource == nil {
+		return fmt.Errorf("input.KeySource is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_keySource_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_keySource_Validate()
+	}
+	if len(input.StandardBeacons) < 1 {
+		return fmt.Errorf("StandardBeaconList has a minimum length of 1 but has the length of %d.", len(input.StandardBeacons))
+	}
+	if input.StandardBeacons == nil {
+		return fmt.Errorf("input.StandardBeacons is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_standardBeacons_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_standardBeacons_Validate()
+	}
+	if input.Version < 1 {
+		return fmt.Errorf("VersionNumber has a minimum of 1 but has the value of %d.", input.Version)
+	}
+	if len(input.CompoundBeacons) < 1 {
+		return fmt.Errorf("CompoundBeaconList has a minimum length of 1 but has the length of %d.", len(input.CompoundBeacons))
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_compoundBeacons_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_compoundBeacons_Validate()
+	}
+	if len(input.EncryptedParts) < 1 {
+		return fmt.Errorf("EncryptedPartsList has a minimum length of 1 but has the length of %d.", len(input.EncryptedParts))
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_encryptedParts_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_encryptedParts_Validate()
+	}
+	if len(input.SignedParts) < 1 {
+		return fmt.Errorf("SignedPartsList has a minimum length of 1 but has the length of %d.", len(input.SignedParts))
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_signedParts_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_signedParts_Validate()
+	}
+	if len(input.VirtualFields) < 1 {
+		return fmt.Errorf("VirtualFieldList has a minimum length of 1 but has the length of %d.", len(input.VirtualFields))
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_virtualFields_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_virtualFields_Validate()
+	}
+
+	return nil
+}
+
+func (input BeaconVersion) Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_keySource_Validate() error {
+	if input.KeySource == nil {
+		return nil
+	}
+	switch unionType := input.KeySource.(type) {
+	case *BeaconKeySourceMembersingle:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *BeaconKeySourceMembermulti:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input BeaconVersion) Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_standardBeacons_Validate() error {
+	for _, item := range input.StandardBeacons {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+func (input BeaconVersion) Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_compoundBeacons_Validate() error {
+	for _, item := range input.CompoundBeacons {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+func (input BeaconVersion) Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_encryptedParts_Validate() error {
+	for _, item := range input.EncryptedParts {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+func (input BeaconVersion) Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_signedParts_Validate() error {
+	for _, item := range input.SignedParts {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+func (input BeaconVersion) Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_virtualFields_Validate() error {
+	for _, item := range input.VirtualFields {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+
+type DynamoDbEncryptionConfig struct {
+}
+
+func (input DynamoDbEncryptionConfig) Validate() error {
+
+	return nil
+}
+
+type GetBranchKeyIdFromDdbKeyOutput struct {
+	BranchKeyId string
+}
+
+func (input GetBranchKeyIdFromDdbKeyOutput) Validate() error {
+
+	return nil
+}
+
+type LegacyDynamoDbEncryptorReference struct {
+}
+
+func (input LegacyDynamoDbEncryptorReference) Validate() error {
+
+	return nil
+}
+
+type LegacyOverride struct {
+	AttributeActionsOnEncrypt map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction
+
+	Encryptor ILegacyDynamoDbEncryptor
+
+	Policy LegacyPolicy
+
+	DefaultAttributeFlag *awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction
+}
+
+func (input LegacyOverride) Validate() error {
+	if input.AttributeActionsOnEncrypt == nil {
+		return fmt.Errorf("input.AttributeActionsOnEncrypt is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_attributeActionsOnEncrypt_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_attributeActionsOnEncrypt_Validate()
+	}
+
+	return nil
+}
+
+func (input LegacyOverride) Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_attributeActionsOnEncrypt_Validate() error {
+	for key, _ := range input.AttributeActionsOnEncrypt {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+	}
+
+	return nil
+}
+
+type SearchConfig struct {
+	Versions []BeaconVersion
+
+	WriteVersion int32
+}
+
+func (input SearchConfig) Validate() error {
+	if len(input.Versions) < 1 {
+		return fmt.Errorf("BeaconVersionList has a minimum length of 1 but has the length of %d.", len(input.Versions))
+	}
+	if len(input.Versions) > 1 {
+		return fmt.Errorf("BeaconVersionList has a maximum length of 1 but has the length of %d.", len(input.Versions))
+	}
+	if input.Versions == nil {
+		return fmt.Errorf("input.Versions is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_SearchConfig_versions_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_SearchConfig_versions_Validate()
+	}
+	if input.WriteVersion < 1 {
+		return fmt.Errorf("VersionNumber has a minimum of 1 but has the value of %d.", input.WriteVersion)
+	}
+
+	return nil
+}
+
+func (input SearchConfig) Aws_cryptography_dbEncryptionSdk_dynamoDb_SearchConfig_versions_Validate() error {
+	for _, item := range input.Versions {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+
+type DynamoDbTableEncryptionConfig struct {
+	AttributeActionsOnEncrypt map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction
+
+	LogicalTableName string
+
+	PartitionKeyName string
+
+	AlgorithmSuiteId *awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId
+
+	AllowedUnsignedAttributePrefix *string
+
+	AllowedUnsignedAttributes []string
+
+	Cmm awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsManager
+
+	Keyring awscryptographymaterialproviderssmithygeneratedtypes.IKeyring
+
+	LegacyOverride *LegacyOverride
+
+	PlaintextOverride *PlaintextOverride
+
+	Search *SearchConfig
+
+	SortKeyName *string
+}
+
+func (input DynamoDbTableEncryptionConfig) Validate() error {
+	if input.AttributeActionsOnEncrypt == nil {
+		return fmt.Errorf("input.AttributeActionsOnEncrypt is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_attributeActionsOnEncrypt_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_attributeActionsOnEncrypt_Validate()
+	}
+	if len(input.PartitionKeyName) < 1 {
+		return fmt.Errorf("KeySchemaAttributeName has a minimum length of 1 but has the length of %d.", len(input.PartitionKeyName))
+	}
+	if len(input.PartitionKeyName) > 255 {
+		return fmt.Errorf("KeySchemaAttributeName has a maximum length of 255 but has the length of %d.", len(input.PartitionKeyName))
+	}
+	if len(input.AllowedUnsignedAttributes) < 1 {
+		return fmt.Errorf("AttributeNameList has a minimum length of 1 but has the length of %d.", len(input.AllowedUnsignedAttributes))
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_allowedUnsignedAttributes_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_allowedUnsignedAttributes_Validate()
+	}
+	if input.LegacyOverride != nil {
+		if input.LegacyOverride.Validate() != nil {
+			return input.LegacyOverride.Validate()
+		}
+
+	}
+	if input.Search != nil {
+		if input.Search.Validate() != nil {
+			return input.Search.Validate()
+		}
+
+	}
+	if input.SortKeyName != nil {
+		if len(*input.SortKeyName) < 1 {
+			return fmt.Errorf("KeySchemaAttributeName has a minimum length of 1 but has the length of %d.", len(*input.SortKeyName))
+		}
+		if len(*input.SortKeyName) > 255 {
+			return fmt.Errorf("KeySchemaAttributeName has a maximum length of 255 but has the length of %d.", len(*input.SortKeyName))
+		}
+	}
+
+	return nil
+}
+
+func (input DynamoDbTableEncryptionConfig) Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_attributeActionsOnEncrypt_Validate() error {
+	for key, _ := range input.AttributeActionsOnEncrypt {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+	}
+
+	return nil
+}
+func (input DynamoDbTableEncryptionConfig) Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_allowedUnsignedAttributes_Validate() error {
+	for _, item := range input.AllowedUnsignedAttributes {
+		if len(item) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(item))
+		}
+		if len(item) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(item))
+		}
+	}
+
+	return nil
+}
+
+type DynamoDbTablesEncryptionConfig struct {
+	TableEncryptionConfigs map[string]DynamoDbTableEncryptionConfig
+}
+
+func (input DynamoDbTablesEncryptionConfig) Validate() error {
+	if input.TableEncryptionConfigs == nil {
+		return fmt.Errorf("input.TableEncryptionConfigs is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTablesEncryptionConfig_tableEncryptionConfigs_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTablesEncryptionConfig_tableEncryptionConfigs_Validate()
+	}
+
+	return nil
+}
+
+func (input DynamoDbTablesEncryptionConfig) Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTablesEncryptionConfig_tableEncryptionConfigs_Validate() error {
+	for key, value := range input.TableEncryptionConfigs {
+		if len(key) < 3 {
+			return fmt.Errorf("TableName has a minimum length of 3 but has the length of %d.", len(key))
+		}
+		if len(key) > 255 {
+			return fmt.Errorf("TableName has a maximum length of 255 but has the length of %d.", len(key))
+		}
+		if value.Validate() != nil {
+			return value.Validate()
+		}
+	}
+
+	return nil
+}
+
+type GetBranchKeyIdFromDdbKeyInput struct {
+	DdbKey map[string]dynamodbtypes.AttributeValue
+}
+
+func (input GetBranchKeyIdFromDdbKeyInput) Validate() error {
+	if input.DdbKey == nil {
+		return fmt.Errorf("input.DdbKey is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_GetBranchKeyIdFromDdbKeyInput_ddbKey_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_GetBranchKeyIdFromDdbKeyInput_ddbKey_Validate()
+	}
+
+	return nil
+}
+
+func (input GetBranchKeyIdFromDdbKeyInput) Com_amazonaws_dynamodb_Key_value_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+	case *dynamodbtypes.AttributeValueMemberL:
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input GetBranchKeyIdFromDdbKeyInput) Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+		if input.Com_amazonaws_dynamodb_AttributeValue_M_Validate(unionType.Value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeValue_M_Validate(unionType.Value)
+		}
+	case *dynamodbtypes.AttributeValueMemberL:
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input GetBranchKeyIdFromDdbKeyInput) Com_amazonaws_dynamodb_AttributeValue_M_Validate(Value map[string]dynamodbtypes.AttributeValue) error {
+	for key, value := range Value {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+		if input.Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(value) != nil {
+			return input.Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(value)
+		}
+	}
+
+	return nil
+}
+func (input GetBranchKeyIdFromDdbKeyInput) Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+	case *dynamodbtypes.AttributeValueMemberL:
+		if input.Com_amazonaws_dynamodb_AttributeValue_L_Validate(unionType.Value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeValue_L_Validate(unionType.Value)
+		}
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input GetBranchKeyIdFromDdbKeyInput) Com_amazonaws_dynamodb_AttributeValue_L_Validate(Value []dynamodbtypes.AttributeValue) error {
+	for _, item := range Value {
+		if input.Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(item) != nil {
+			return input.Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(item)
+		}
+	}
+
+	return nil
+}
+func (input GetBranchKeyIdFromDdbKeyInput) Aws_cryptography_dbEncryptionSdk_dynamoDb_GetBranchKeyIdFromDdbKeyInput_ddbKey_Validate() error {
+	for key, value := range input.DdbKey {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+		if input.Com_amazonaws_dynamodb_Key_value_Validate(value) != nil {
+			return input.Com_amazonaws_dynamodb_Key_value_Validate(value)
+		}
+	}
+
+	return nil
+}
+
+// BeaconKeySourceMembermulti
+// BeaconKeySourceMembersingle
+type BeaconKeySource interface {
+	isBeaconKeySource()
+}
+
+type BeaconKeySourceMembermulti struct {
+	Value MultiKeyStore
+}
+
+func (*BeaconKeySourceMembermulti) isBeaconKeySource() {}
+
+type BeaconKeySourceMembersingle struct {
+	Value SingleKeyStore
+}
+
+func (*BeaconKeySourceMembersingle) isBeaconKeySource() {}
+
+// BeaconStyleMemberasSet
+// BeaconStyleMemberpartOnly
+// BeaconStyleMembershared
+// BeaconStyleMembersharedSet
+type BeaconStyle interface {
+	isBeaconStyle()
+}
+
+type BeaconStyleMemberasSet struct {
+	Value AsSet
+}
+
+func (*BeaconStyleMemberasSet) isBeaconStyle() {}
+
+type BeaconStyleMemberpartOnly struct {
+	Value PartOnly
+}
+
+func (*BeaconStyleMemberpartOnly) isBeaconStyle() {}
+
+type BeaconStyleMembershared struct {
+	Value Shared
+}
+
+func (*BeaconStyleMembershared) isBeaconStyle() {}
+
+type BeaconStyleMembersharedSet struct {
+	Value SharedSet
+}
+
+func (*BeaconStyleMembersharedSet) isBeaconStyle() {}
+
+// GetEncryptedDataKeyDescriptionUnionMemberheader
+// GetEncryptedDataKeyDescriptionUnionMemberitem
+type GetEncryptedDataKeyDescriptionUnion interface {
+	isGetEncryptedDataKeyDescriptionUnion()
+}
+
+type GetEncryptedDataKeyDescriptionUnionMemberheader struct {
+	Value []byte
+}
+
+func (*GetEncryptedDataKeyDescriptionUnionMemberheader) isGetEncryptedDataKeyDescriptionUnion() {}
+
+type GetEncryptedDataKeyDescriptionUnionMemberitem struct {
+	Value map[string]dynamodbtypes.AttributeValue
+}
+
+func (*GetEncryptedDataKeyDescriptionUnionMemberitem) isGetEncryptedDataKeyDescriptionUnion() {}
+
+// VirtualTransformMemberinsert
+// VirtualTransformMemberlower
+// VirtualTransformMemberprefix
+// VirtualTransformMembersegment
+// VirtualTransformMembersegments
+// VirtualTransformMembersubstring
+// VirtualTransformMembersuffix
+// VirtualTransformMemberupper
+type VirtualTransform interface {
+	isVirtualTransform()
+}
+
+type VirtualTransformMemberinsert struct {
+	Value Insert
+}
+
+func (*VirtualTransformMemberinsert) isVirtualTransform() {}
+
+type VirtualTransformMemberlower struct {
+	Value Lower
+}
+
+func (*VirtualTransformMemberlower) isVirtualTransform() {}
+
+type VirtualTransformMemberprefix struct {
+	Value GetPrefix
+}
+
+func (*VirtualTransformMemberprefix) isVirtualTransform() {}
+
+type VirtualTransformMembersegment struct {
+	Value GetSegment
+}
+
+func (*VirtualTransformMembersegment) isVirtualTransform() {}
+
+type VirtualTransformMembersegments struct {
+	Value GetSegments
+}
+
+func (*VirtualTransformMembersegments) isVirtualTransform() {}
+
+type VirtualTransformMembersubstring struct {
+	Value GetSubstring
+}
+
+func (*VirtualTransformMembersubstring) isVirtualTransform() {}
+
+type VirtualTransformMembersuffix struct {
+	Value GetSuffix
+}
+
+func (*VirtualTransformMembersuffix) isVirtualTransform() {}
+
+type VirtualTransformMemberupper struct {
+	Value Upper
+}
+
+func (*VirtualTransformMemberupper) isVirtualTransform() {}
+
+type DynamoDbEncryptionBaseException interface {
+	// This is a dummy method to allow type assertion since Go empty interfaces
+	// aren't useful for type assertion checks. No concrete class is expected to implement
+	// this method. This is also not exported.
+	interfaceBindingMethod()
+}
+
+type IDynamoDbKeyBranchKeyIdSupplier interface {
+	GetBranchKeyIdFromDdbKey(GetBranchKeyIdFromDdbKeyInput) (*GetBranchKeyIdFromDdbKeyOutput, error)
+}
+
+type ILegacyDynamoDbEncryptor interface {
+}
diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes/unmodelled_errors.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes/unmodelled_errors.go
new file mode 100644
index 000000000..d7d920e5f
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes/unmodelled_errors.go
@@ -0,0 +1,26 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes
+
+import (
+	"fmt"
+)
+
+type CollectionOfErrors struct {
+	DynamoDbEncryptionBaseException
+	ListOfErrors []error
+	Message      string
+}
+
+func (e CollectionOfErrors) Error() string {
+	return fmt.Sprintf("message: %s\n err %v", e.Message, e.ListOfErrors)
+}
+
+type OpaqueError struct {
+	DynamoDbEncryptionBaseException
+	ErrObject interface{}
+}
+
+func (e OpaqueError) Error() string {
+	return fmt.Sprintf("message: %v", e.ErrObject)
+}
diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygenerated/api_client.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygenerated/api_client.go
new file mode 100644
index 000000000..a904df22a
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygenerated/api_client.go
@@ -0,0 +1,595 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbtransformssmithygenerated
+
+import (
+	"context"
+
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/DynamoDbEncryptionTransforms"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygenerated"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes"
+)
+
+type Client struct {
+	DafnyClient AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.IDynamoDbEncryptionTransformsClient
+}
+
+func NewClient(clientConfig awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbTablesEncryptionConfig) (*Client, error) {
+	var dafnyConfig = awscryptographydbencryptionsdkdynamodbsmithygenerated.DynamoDbTablesEncryptionConfig_ToDafny(clientConfig)
+	var dafny_response = DynamoDbEncryptionTransforms.Companion_Default___.DynamoDbEncryptionTransforms(dafnyConfig)
+	if dafny_response.Is_Failure() {
+		panic("Client construction failed. This should never happen")
+	}
+	var dafnyClient = dafny_response.Extract().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.IDynamoDbEncryptionTransformsClient)
+	client := &Client{dafnyClient}
+	return client, nil
+}
+
+func (client *Client) PutItemInputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemInputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemInputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemInputTransformInput = PutItemInputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.PutItemInputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = PutItemInputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemInputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) PutItemOutputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemOutputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemOutputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemOutputTransformInput = PutItemOutputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.PutItemOutputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = PutItemOutputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemOutputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) GetItemInputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemInputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemInputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemInputTransformInput = GetItemInputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.GetItemInputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = GetItemInputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemInputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) GetItemOutputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemOutputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemOutputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemOutputTransformInput = GetItemOutputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.GetItemOutputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = GetItemOutputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemOutputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) BatchWriteItemInputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemInputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemInputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemInputTransformInput = BatchWriteItemInputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.BatchWriteItemInputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = BatchWriteItemInputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemInputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) BatchWriteItemOutputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemOutputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemOutputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemOutputTransformInput = BatchWriteItemOutputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.BatchWriteItemOutputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = BatchWriteItemOutputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemOutputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) BatchGetItemInputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemInputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemInputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemInputTransformInput = BatchGetItemInputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.BatchGetItemInputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = BatchGetItemInputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemInputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) BatchGetItemOutputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemOutputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemOutputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemOutputTransformInput = BatchGetItemOutputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.BatchGetItemOutputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = BatchGetItemOutputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemOutputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) ScanInputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanInputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanInputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanInputTransformInput = ScanInputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.ScanInputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = ScanInputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanInputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) ScanOutputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanOutputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanOutputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanOutputTransformInput = ScanOutputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.ScanOutputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = ScanOutputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanOutputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) QueryInputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryInputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryInputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryInputTransformInput = QueryInputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.QueryInputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = QueryInputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryInputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) QueryOutputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryOutputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryOutputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryOutputTransformInput = QueryOutputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.QueryOutputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = QueryOutputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryOutputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) TransactWriteItemsInputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsInputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsInputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsInputTransformInput = TransactWriteItemsInputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.TransactWriteItemsInputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = TransactWriteItemsInputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsInputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) TransactWriteItemsOutputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsOutputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsOutputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsOutputTransformInput = TransactWriteItemsOutputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.TransactWriteItemsOutputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = TransactWriteItemsOutputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsOutputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) UpdateItemInputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemInputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemInputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemInputTransformInput = UpdateItemInputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.UpdateItemInputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = UpdateItemInputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemInputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) UpdateItemOutputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemOutputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemOutputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemOutputTransformInput = UpdateItemOutputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.UpdateItemOutputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = UpdateItemOutputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemOutputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) DeleteItemInputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemInputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemInputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemInputTransformInput = DeleteItemInputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.DeleteItemInputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = DeleteItemInputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemInputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) DeleteItemOutputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemOutputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemOutputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemOutputTransformInput = DeleteItemOutputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.DeleteItemOutputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = DeleteItemOutputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemOutputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) TransactGetItemsInputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsInputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsInputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsInputTransformInput = TransactGetItemsInputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.TransactGetItemsInputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = TransactGetItemsInputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsInputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) TransactGetItemsOutputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsOutputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsOutputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsOutputTransformInput = TransactGetItemsOutputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.TransactGetItemsOutputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = TransactGetItemsOutputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsOutputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) ExecuteStatementInputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementInputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementInputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementInputTransformInput = ExecuteStatementInputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.ExecuteStatementInputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = ExecuteStatementInputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementInputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) ExecuteStatementOutputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementOutputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementOutputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementOutputTransformInput = ExecuteStatementOutputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.ExecuteStatementOutputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = ExecuteStatementOutputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementOutputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) BatchExecuteStatementInputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementInputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementInputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementInputTransformInput = BatchExecuteStatementInputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.BatchExecuteStatementInputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = BatchExecuteStatementInputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementInputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) BatchExecuteStatementOutputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementOutputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementOutputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementOutputTransformInput = BatchExecuteStatementOutputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.BatchExecuteStatementOutputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = BatchExecuteStatementOutputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementOutputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) ExecuteTransactionInputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionInputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionInputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionInputTransformInput = ExecuteTransactionInputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.ExecuteTransactionInputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = ExecuteTransactionInputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionInputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) ExecuteTransactionOutputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionOutputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionOutputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionOutputTransformInput = ExecuteTransactionOutputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.ExecuteTransactionOutputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = ExecuteTransactionOutputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionOutputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) ResolveAttributes(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ResolveAttributesInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ResolveAttributesOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ResolveAttributesInput = ResolveAttributesInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.ResolveAttributes(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = ResolveAttributesOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ResolveAttributesOutput))
+	return &native_response, nil
+
+}
diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygenerated/to_dafny.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygenerated/to_dafny.go
new file mode 100644
index 000000000..74b0cca02
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygenerated/to_dafny.go
@@ -0,0 +1,1127 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbtransformssmithygenerated
+
+import (
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/comamazonawsdynamodbsmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygenerated"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes"
+	"github.com/aws/aws-sdk-go-v2/service/dynamodb"
+	dynamodbtypes "github.com/aws/aws-sdk-go-v2/service/dynamodb/types"
+	"github.com/aws/smithy-go"
+	"github.com/dafny-lang/DafnyRuntimeGo/v4/dafny"
+)
+
+func BatchExecuteStatementInputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementInputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementInputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementInputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchExecuteStatementInputTransformInput_.Create_BatchExecuteStatementInputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementInputTransformInput_sdkInput_ToDafny(nativeInput.SdkInput))
+	}()
+
+}
+
+func BatchExecuteStatementInputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementInputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementInputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementInputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchExecuteStatementInputTransformOutput_.Create_BatchExecuteStatementInputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementInputTransformOutput_transformedInput_ToDafny(nativeOutput.TransformedInput))
+	}()
+
+}
+
+func BatchExecuteStatementOutputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementOutputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementOutputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementOutputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchExecuteStatementOutputTransformInput_.Create_BatchExecuteStatementOutputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementOutputTransformInput_sdkOutput_ToDafny(nativeInput.SdkOutput), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementOutputTransformInput_originalInput_ToDafny(nativeInput.OriginalInput))
+	}()
+
+}
+
+func BatchExecuteStatementOutputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementOutputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementOutputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementOutputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchExecuteStatementOutputTransformOutput_.Create_BatchExecuteStatementOutputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementOutputTransformOutput_transformedOutput_ToDafny(nativeOutput.TransformedOutput))
+	}()
+
+}
+
+func BatchGetItemInputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemInputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemInputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemInputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchGetItemInputTransformInput_.Create_BatchGetItemInputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemInputTransformInput_sdkInput_ToDafny(nativeInput.SdkInput))
+	}()
+
+}
+
+func BatchGetItemInputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemInputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemInputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemInputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchGetItemInputTransformOutput_.Create_BatchGetItemInputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemInputTransformOutput_transformedInput_ToDafny(nativeOutput.TransformedInput))
+	}()
+
+}
+
+func BatchGetItemOutputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemOutputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemOutputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemOutputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchGetItemOutputTransformInput_.Create_BatchGetItemOutputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemOutputTransformInput_sdkOutput_ToDafny(nativeInput.SdkOutput), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemOutputTransformInput_originalInput_ToDafny(nativeInput.OriginalInput))
+	}()
+
+}
+
+func BatchGetItemOutputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemOutputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemOutputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemOutputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchGetItemOutputTransformOutput_.Create_BatchGetItemOutputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemOutputTransformOutput_transformedOutput_ToDafny(nativeOutput.TransformedOutput))
+	}()
+
+}
+
+func BatchWriteItemInputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemInputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemInputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemInputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchWriteItemInputTransformInput_.Create_BatchWriteItemInputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemInputTransformInput_sdkInput_ToDafny(nativeInput.SdkInput))
+	}()
+
+}
+
+func BatchWriteItemInputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemInputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemInputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemInputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchWriteItemInputTransformOutput_.Create_BatchWriteItemInputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemInputTransformOutput_transformedInput_ToDafny(nativeOutput.TransformedInput))
+	}()
+
+}
+
+func BatchWriteItemOutputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemOutputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemOutputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemOutputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchWriteItemOutputTransformInput_.Create_BatchWriteItemOutputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemOutputTransformInput_sdkOutput_ToDafny(nativeInput.SdkOutput), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemOutputTransformInput_originalInput_ToDafny(nativeInput.OriginalInput))
+	}()
+
+}
+
+func BatchWriteItemOutputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemOutputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemOutputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemOutputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchWriteItemOutputTransformOutput_.Create_BatchWriteItemOutputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemOutputTransformOutput_transformedOutput_ToDafny(nativeOutput.TransformedOutput))
+	}()
+
+}
+
+func DeleteItemInputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemInputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemInputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemInputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_DeleteItemInputTransformInput_.Create_DeleteItemInputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemInputTransformInput_sdkInput_ToDafny(nativeInput.SdkInput))
+	}()
+
+}
+
+func DeleteItemInputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemInputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemInputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemInputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_DeleteItemInputTransformOutput_.Create_DeleteItemInputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemInputTransformOutput_transformedInput_ToDafny(nativeOutput.TransformedInput))
+	}()
+
+}
+
+func DeleteItemOutputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemOutputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemOutputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemOutputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_DeleteItemOutputTransformInput_.Create_DeleteItemOutputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemOutputTransformInput_sdkOutput_ToDafny(nativeInput.SdkOutput), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemOutputTransformInput_originalInput_ToDafny(nativeInput.OriginalInput))
+	}()
+
+}
+
+func DeleteItemOutputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemOutputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemOutputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemOutputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_DeleteItemOutputTransformOutput_.Create_DeleteItemOutputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemOutputTransformOutput_transformedOutput_ToDafny(nativeOutput.TransformedOutput))
+	}()
+
+}
+
+func ExecuteStatementInputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementInputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementInputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementInputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ExecuteStatementInputTransformInput_.Create_ExecuteStatementInputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementInputTransformInput_sdkInput_ToDafny(nativeInput.SdkInput))
+	}()
+
+}
+
+func ExecuteStatementInputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementInputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementInputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementInputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ExecuteStatementInputTransformOutput_.Create_ExecuteStatementInputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementInputTransformOutput_transformedInput_ToDafny(nativeOutput.TransformedInput))
+	}()
+
+}
+
+func ExecuteStatementOutputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementOutputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementOutputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementOutputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ExecuteStatementOutputTransformInput_.Create_ExecuteStatementOutputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementOutputTransformInput_sdkOutput_ToDafny(nativeInput.SdkOutput), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementOutputTransformInput_originalInput_ToDafny(nativeInput.OriginalInput))
+	}()
+
+}
+
+func ExecuteStatementOutputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementOutputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementOutputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementOutputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ExecuteStatementOutputTransformOutput_.Create_ExecuteStatementOutputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementOutputTransformOutput_transformedOutput_ToDafny(nativeOutput.TransformedOutput))
+	}()
+
+}
+
+func ExecuteTransactionInputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionInputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionInputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionInputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ExecuteTransactionInputTransformInput_.Create_ExecuteTransactionInputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionInputTransformInput_sdkInput_ToDafny(nativeInput.SdkInput))
+	}()
+
+}
+
+func ExecuteTransactionInputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionInputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionInputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionInputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ExecuteTransactionInputTransformOutput_.Create_ExecuteTransactionInputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionInputTransformOutput_transformedInput_ToDafny(nativeOutput.TransformedInput))
+	}()
+
+}
+
+func ExecuteTransactionOutputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionOutputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionOutputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionOutputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ExecuteTransactionOutputTransformInput_.Create_ExecuteTransactionOutputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionOutputTransformInput_sdkOutput_ToDafny(nativeInput.SdkOutput), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionOutputTransformInput_originalInput_ToDafny(nativeInput.OriginalInput))
+	}()
+
+}
+
+func ExecuteTransactionOutputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionOutputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionOutputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionOutputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ExecuteTransactionOutputTransformOutput_.Create_ExecuteTransactionOutputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionOutputTransformOutput_transformedOutput_ToDafny(nativeOutput.TransformedOutput))
+	}()
+
+}
+
+func GetItemInputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemInputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemInputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemInputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_GetItemInputTransformInput_.Create_GetItemInputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemInputTransformInput_sdkInput_ToDafny(nativeInput.SdkInput))
+	}()
+
+}
+
+func GetItemInputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemInputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemInputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemInputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_GetItemInputTransformOutput_.Create_GetItemInputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemInputTransformOutput_transformedInput_ToDafny(nativeOutput.TransformedInput))
+	}()
+
+}
+
+func GetItemOutputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemOutputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemOutputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemOutputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_GetItemOutputTransformInput_.Create_GetItemOutputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemOutputTransformInput_sdkOutput_ToDafny(nativeInput.SdkOutput), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemOutputTransformInput_originalInput_ToDafny(nativeInput.OriginalInput))
+	}()
+
+}
+
+func GetItemOutputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemOutputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemOutputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemOutputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_GetItemOutputTransformOutput_.Create_GetItemOutputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemOutputTransformOutput_transformedOutput_ToDafny(nativeOutput.TransformedOutput))
+	}()
+
+}
+
+func PutItemInputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemInputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemInputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemInputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_PutItemInputTransformInput_.Create_PutItemInputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemInputTransformInput_sdkInput_ToDafny(nativeInput.SdkInput))
+	}()
+
+}
+
+func PutItemInputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemInputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemInputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemInputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_PutItemInputTransformOutput_.Create_PutItemInputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemInputTransformOutput_transformedInput_ToDafny(nativeOutput.TransformedInput))
+	}()
+
+}
+
+func PutItemOutputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemOutputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemOutputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemOutputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_PutItemOutputTransformInput_.Create_PutItemOutputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemOutputTransformInput_sdkOutput_ToDafny(nativeInput.SdkOutput), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemOutputTransformInput_originalInput_ToDafny(nativeInput.OriginalInput))
+	}()
+
+}
+
+func PutItemOutputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemOutputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemOutputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemOutputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_PutItemOutputTransformOutput_.Create_PutItemOutputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemOutputTransformOutput_transformedOutput_ToDafny(nativeOutput.TransformedOutput))
+	}()
+
+}
+
+func QueryInputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryInputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryInputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryInputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_QueryInputTransformInput_.Create_QueryInputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryInputTransformInput_sdkInput_ToDafny(nativeInput.SdkInput))
+	}()
+
+}
+
+func QueryInputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryInputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryInputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryInputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_QueryInputTransformOutput_.Create_QueryInputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryInputTransformOutput_transformedInput_ToDafny(nativeOutput.TransformedInput))
+	}()
+
+}
+
+func QueryOutputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryOutputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryOutputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryOutputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_QueryOutputTransformInput_.Create_QueryOutputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryOutputTransformInput_sdkOutput_ToDafny(nativeInput.SdkOutput), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryOutputTransformInput_originalInput_ToDafny(nativeInput.OriginalInput))
+	}()
+
+}
+
+func QueryOutputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryOutputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryOutputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryOutputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_QueryOutputTransformOutput_.Create_QueryOutputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryOutputTransformOutput_transformedOutput_ToDafny(nativeOutput.TransformedOutput))
+	}()
+
+}
+
+func ResolveAttributesInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ResolveAttributesInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ResolveAttributesInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ResolveAttributesInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ResolveAttributesInput_.Create_ResolveAttributesInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesInput_TableName_ToDafny(nativeInput.TableName), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesInput_Item_ToDafny(nativeInput.Item), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesInput_Version_ToDafny(nativeInput.Version))
+	}()
+
+}
+
+func ResolveAttributesOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ResolveAttributesOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ResolveAttributesOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ResolveAttributesOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ResolveAttributesOutput_.Create_ResolveAttributesOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesOutput_VirtualFields_ToDafny(nativeOutput.VirtualFields), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesOutput_CompoundBeacons_ToDafny(nativeOutput.CompoundBeacons))
+	}()
+
+}
+
+func ScanInputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanInputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanInputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanInputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ScanInputTransformInput_.Create_ScanInputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanInputTransformInput_sdkInput_ToDafny(nativeInput.SdkInput))
+	}()
+
+}
+
+func ScanInputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanInputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanInputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanInputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ScanInputTransformOutput_.Create_ScanInputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanInputTransformOutput_transformedInput_ToDafny(nativeOutput.TransformedInput))
+	}()
+
+}
+
+func ScanOutputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanOutputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanOutputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanOutputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ScanOutputTransformInput_.Create_ScanOutputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanOutputTransformInput_sdkOutput_ToDafny(nativeInput.SdkOutput), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanOutputTransformInput_originalInput_ToDafny(nativeInput.OriginalInput))
+	}()
+
+}
+
+func ScanOutputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanOutputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanOutputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanOutputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ScanOutputTransformOutput_.Create_ScanOutputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanOutputTransformOutput_transformedOutput_ToDafny(nativeOutput.TransformedOutput))
+	}()
+
+}
+
+func TransactGetItemsInputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsInputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsInputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsInputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_TransactGetItemsInputTransformInput_.Create_TransactGetItemsInputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsInputTransformInput_sdkInput_ToDafny(nativeInput.SdkInput))
+	}()
+
+}
+
+func TransactGetItemsInputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsInputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsInputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsInputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_TransactGetItemsInputTransformOutput_.Create_TransactGetItemsInputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsInputTransformOutput_transformedInput_ToDafny(nativeOutput.TransformedInput))
+	}()
+
+}
+
+func TransactGetItemsOutputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsOutputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsOutputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsOutputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_TransactGetItemsOutputTransformInput_.Create_TransactGetItemsOutputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsOutputTransformInput_sdkOutput_ToDafny(nativeInput.SdkOutput), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsOutputTransformInput_originalInput_ToDafny(nativeInput.OriginalInput))
+	}()
+
+}
+
+func TransactGetItemsOutputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsOutputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsOutputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsOutputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_TransactGetItemsOutputTransformOutput_.Create_TransactGetItemsOutputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsOutputTransformOutput_transformedOutput_ToDafny(nativeOutput.TransformedOutput))
+	}()
+
+}
+
+func TransactWriteItemsInputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsInputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsInputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsInputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_TransactWriteItemsInputTransformInput_.Create_TransactWriteItemsInputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsInputTransformInput_sdkInput_ToDafny(nativeInput.SdkInput))
+	}()
+
+}
+
+func TransactWriteItemsInputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsInputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsInputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsInputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_TransactWriteItemsInputTransformOutput_.Create_TransactWriteItemsInputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsInputTransformOutput_transformedInput_ToDafny(nativeOutput.TransformedInput))
+	}()
+
+}
+
+func TransactWriteItemsOutputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsOutputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsOutputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsOutputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_TransactWriteItemsOutputTransformInput_.Create_TransactWriteItemsOutputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsOutputTransformInput_sdkOutput_ToDafny(nativeInput.SdkOutput), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsOutputTransformInput_originalInput_ToDafny(nativeInput.OriginalInput))
+	}()
+
+}
+
+func TransactWriteItemsOutputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsOutputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsOutputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsOutputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_TransactWriteItemsOutputTransformOutput_.Create_TransactWriteItemsOutputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsOutputTransformOutput_transformedOutput_ToDafny(nativeOutput.TransformedOutput))
+	}()
+
+}
+
+func UpdateItemInputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemInputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemInputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemInputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_UpdateItemInputTransformInput_.Create_UpdateItemInputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemInputTransformInput_sdkInput_ToDafny(nativeInput.SdkInput))
+	}()
+
+}
+
+func UpdateItemInputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemInputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemInputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemInputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_UpdateItemInputTransformOutput_.Create_UpdateItemInputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemInputTransformOutput_transformedInput_ToDafny(nativeOutput.TransformedInput))
+	}()
+
+}
+
+func UpdateItemOutputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemOutputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemOutputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemOutputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_UpdateItemOutputTransformInput_.Create_UpdateItemOutputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemOutputTransformInput_sdkOutput_ToDafny(nativeInput.SdkOutput), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemOutputTransformInput_originalInput_ToDafny(nativeInput.OriginalInput))
+	}()
+
+}
+
+func UpdateItemOutputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemOutputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemOutputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemOutputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_UpdateItemOutputTransformOutput_.Create_UpdateItemOutputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemOutputTransformOutput_transformedOutput_ToDafny(nativeOutput.TransformedOutput))
+	}()
+
+}
+
+func DynamoDbEncryptionTransformsException_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DynamoDbEncryptionTransformsException) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_DynamoDbEncryptionTransformsException_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DynamoDbEncryptionTransformsException_message_ToDafny(nativeInput.Message))
+	}()
+
+}
+
+func CollectionOfErrors_Input_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.CollectionOfErrors) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error {
+	var e []interface{}
+	for _, i2 := range nativeInput.ListOfErrors {
+		e = append(e, Error_ToDafny(i2))
+	}
+	return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_CollectionOfErrors_(dafny.SeqOf(e...), func() dafny.Sequence {
+		res, err := UTF8.DecodeFromNativeGoByteArray([]byte(nativeInput.Message))
+		if err != nil {
+			panic("invalid utf8 input provided")
+		}
+		return res
+	}())
+}
+func OpaqueError_Input_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error {
+	return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_Opaque_(nativeInput.ErrObject)
+}
+
+func Error_ToDafny(err error) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error {
+	switch err.(type) {
+	// Service Errors
+	case awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DynamoDbEncryptionTransformsException:
+		return DynamoDbEncryptionTransformsException_ToDafny(err.(awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DynamoDbEncryptionTransformsException))
+
+	//DependentErrors
+	case awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbEncryptionBaseException:
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkDynamoDb_(awscryptographydbencryptionsdkdynamodbsmithygenerated.Error_ToDafny(err))
+
+	case awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DynamoDbItemEncryptorBaseException:
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptor_(awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated.Error_ToDafny(err))
+
+	case awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredEncryptionBaseException:
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkStructuredEncryption_(awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.Error_ToDafny(err))
+
+	case awscryptographymaterialproviderssmithygeneratedtypes.AwsCryptographicMaterialProvidersBaseException:
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_AwsCryptographyMaterialProviders_(awscryptographymaterialproviderssmithygenerated.Error_ToDafny(err))
+
+	case *smithy.OperationError:
+		if err.(*smithy.OperationError).Service() == "DynamoDB" {
+			DynamoDBError := comamazonawsdynamodbsmithygenerated.Error_ToDafny(err)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_ComAmazonawsDynamodb_(DynamoDBError)
+		}
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_Opaque_(err)
+
+	case smithy.APIError:
+		DynamoDBError := comamazonawsdynamodbsmithygenerated.Error_ToDafny(err)
+		if !DynamoDBError.Is_OpaqueWithText() {
+			return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_ComAmazonawsDynamodb_(DynamoDBError)
+		}
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_Opaque_(err)
+
+	//Unmodelled Errors
+	case awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.CollectionOfErrors:
+		return CollectionOfErrors_Input_ToDafny(err.(awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.CollectionOfErrors))
+
+	default:
+		error, ok := err.(awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError)
+		if !ok {
+			panic("Error is not an OpaqueError")
+		}
+		return OpaqueError_Input_ToDafny(error)
+	}
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementInputTransformInput_sdkInput_ToDafny(input dynamodb.BatchExecuteStatementInput) ComAmazonawsDynamodbTypes.BatchExecuteStatementInput {
+	return func() ComAmazonawsDynamodbTypes.BatchExecuteStatementInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_BatchExecuteStatementInput_.Create_BatchExecuteStatementInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementInput_Statements_ToDafny(input.Statements), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementInputTransformOutput_transformedInput_ToDafny(input dynamodb.BatchExecuteStatementInput) ComAmazonawsDynamodbTypes.BatchExecuteStatementInput {
+	return func() ComAmazonawsDynamodbTypes.BatchExecuteStatementInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_BatchExecuteStatementInput_.Create_BatchExecuteStatementInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementInput_Statements_ToDafny(input.Statements), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementOutputTransformInput_sdkOutput_ToDafny(input dynamodb.BatchExecuteStatementOutput) ComAmazonawsDynamodbTypes.BatchExecuteStatementOutput {
+	return func() ComAmazonawsDynamodbTypes.BatchExecuteStatementOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_BatchExecuteStatementOutput_.Create_BatchExecuteStatementOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementOutput_Responses_ToDafny(input.Responses), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementOutputTransformInput_originalInput_ToDafny(input dynamodb.BatchExecuteStatementInput) ComAmazonawsDynamodbTypes.BatchExecuteStatementInput {
+	return func() ComAmazonawsDynamodbTypes.BatchExecuteStatementInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_BatchExecuteStatementInput_.Create_BatchExecuteStatementInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementInput_Statements_ToDafny(input.Statements), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementOutputTransformOutput_transformedOutput_ToDafny(input dynamodb.BatchExecuteStatementOutput) ComAmazonawsDynamodbTypes.BatchExecuteStatementOutput {
+	return func() ComAmazonawsDynamodbTypes.BatchExecuteStatementOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_BatchExecuteStatementOutput_.Create_BatchExecuteStatementOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementOutput_Responses_ToDafny(input.Responses), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemInputTransformInput_sdkInput_ToDafny(input dynamodb.BatchGetItemInput) ComAmazonawsDynamodbTypes.BatchGetItemInput {
+	return func() ComAmazonawsDynamodbTypes.BatchGetItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_BatchGetItemInput_.Create_BatchGetItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemInput_RequestItems_ToDafny(input.RequestItems), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemInputTransformOutput_transformedInput_ToDafny(input dynamodb.BatchGetItemInput) ComAmazonawsDynamodbTypes.BatchGetItemInput {
+	return func() ComAmazonawsDynamodbTypes.BatchGetItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_BatchGetItemInput_.Create_BatchGetItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemInput_RequestItems_ToDafny(input.RequestItems), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemOutputTransformInput_sdkOutput_ToDafny(input dynamodb.BatchGetItemOutput) ComAmazonawsDynamodbTypes.BatchGetItemOutput {
+	return func() ComAmazonawsDynamodbTypes.BatchGetItemOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_BatchGetItemOutput_.Create_BatchGetItemOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemOutput_Responses_ToDafny(input.Responses), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemOutput_UnprocessedKeys_ToDafny(input.UnprocessedKeys), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemOutputTransformInput_originalInput_ToDafny(input dynamodb.BatchGetItemInput) ComAmazonawsDynamodbTypes.BatchGetItemInput {
+	return func() ComAmazonawsDynamodbTypes.BatchGetItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_BatchGetItemInput_.Create_BatchGetItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemInput_RequestItems_ToDafny(input.RequestItems), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemOutputTransformOutput_transformedOutput_ToDafny(input dynamodb.BatchGetItemOutput) ComAmazonawsDynamodbTypes.BatchGetItemOutput {
+	return func() ComAmazonawsDynamodbTypes.BatchGetItemOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_BatchGetItemOutput_.Create_BatchGetItemOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemOutput_Responses_ToDafny(input.Responses), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemOutput_UnprocessedKeys_ToDafny(input.UnprocessedKeys), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemInputTransformInput_sdkInput_ToDafny(input dynamodb.BatchWriteItemInput) ComAmazonawsDynamodbTypes.BatchWriteItemInput {
+	return func() ComAmazonawsDynamodbTypes.BatchWriteItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_BatchWriteItemInput_.Create_BatchWriteItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_RequestItems_ToDafny(input.RequestItems), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_ReturnItemCollectionMetrics_ToDafny(input.ReturnItemCollectionMetrics))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemInputTransformOutput_transformedInput_ToDafny(input dynamodb.BatchWriteItemInput) ComAmazonawsDynamodbTypes.BatchWriteItemInput {
+	return func() ComAmazonawsDynamodbTypes.BatchWriteItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_BatchWriteItemInput_.Create_BatchWriteItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_RequestItems_ToDafny(input.RequestItems), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_ReturnItemCollectionMetrics_ToDafny(input.ReturnItemCollectionMetrics))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemOutputTransformInput_sdkOutput_ToDafny(input dynamodb.BatchWriteItemOutput) ComAmazonawsDynamodbTypes.BatchWriteItemOutput {
+	return func() ComAmazonawsDynamodbTypes.BatchWriteItemOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_BatchWriteItemOutput_.Create_BatchWriteItemOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemOutput_UnprocessedItems_ToDafny(input.UnprocessedItems), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemOutput_ItemCollectionMetrics_ToDafny(input.ItemCollectionMetrics), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemOutputTransformInput_originalInput_ToDafny(input dynamodb.BatchWriteItemInput) ComAmazonawsDynamodbTypes.BatchWriteItemInput {
+	return func() ComAmazonawsDynamodbTypes.BatchWriteItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_BatchWriteItemInput_.Create_BatchWriteItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_RequestItems_ToDafny(input.RequestItems), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_ReturnItemCollectionMetrics_ToDafny(input.ReturnItemCollectionMetrics))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemOutputTransformOutput_transformedOutput_ToDafny(input dynamodb.BatchWriteItemOutput) ComAmazonawsDynamodbTypes.BatchWriteItemOutput {
+	return func() ComAmazonawsDynamodbTypes.BatchWriteItemOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_BatchWriteItemOutput_.Create_BatchWriteItemOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemOutput_UnprocessedItems_ToDafny(input.UnprocessedItems), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemOutput_ItemCollectionMetrics_ToDafny(input.ItemCollectionMetrics), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemInputTransformInput_sdkInput_ToDafny(input dynamodb.DeleteItemInput) ComAmazonawsDynamodbTypes.DeleteItemInput {
+	return func() ComAmazonawsDynamodbTypes.DeleteItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_DeleteItemInput_.Create_DeleteItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_Key_ToDafny(input.Key), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_Expected_ToDafny(input.Expected), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ConditionalOperator_ToDafny(input.ConditionalOperator), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnValues_ToDafny(input.ReturnValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnItemCollectionMetrics_ToDafny(input.ReturnItemCollectionMetrics), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ConditionExpression_ToDafny(input.ConditionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ExpressionAttributeValues_ToDafny(input.ExpressionAttributeValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnValuesOnConditionCheckFailure_ToDafny(input.ReturnValuesOnConditionCheckFailure))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemInputTransformOutput_transformedInput_ToDafny(input dynamodb.DeleteItemInput) ComAmazonawsDynamodbTypes.DeleteItemInput {
+	return func() ComAmazonawsDynamodbTypes.DeleteItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_DeleteItemInput_.Create_DeleteItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_Key_ToDafny(input.Key), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_Expected_ToDafny(input.Expected), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ConditionalOperator_ToDafny(input.ConditionalOperator), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnValues_ToDafny(input.ReturnValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnItemCollectionMetrics_ToDafny(input.ReturnItemCollectionMetrics), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ConditionExpression_ToDafny(input.ConditionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ExpressionAttributeValues_ToDafny(input.ExpressionAttributeValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnValuesOnConditionCheckFailure_ToDafny(input.ReturnValuesOnConditionCheckFailure))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemOutputTransformInput_sdkOutput_ToDafny(input dynamodb.DeleteItemOutput) ComAmazonawsDynamodbTypes.DeleteItemOutput {
+	return func() ComAmazonawsDynamodbTypes.DeleteItemOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_DeleteItemOutput_.Create_DeleteItemOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemOutput_Attributes_ToDafny(input.Attributes), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemOutput_ItemCollectionMetrics_ToDafny(input.ItemCollectionMetrics))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemOutputTransformInput_originalInput_ToDafny(input dynamodb.DeleteItemInput) ComAmazonawsDynamodbTypes.DeleteItemInput {
+	return func() ComAmazonawsDynamodbTypes.DeleteItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_DeleteItemInput_.Create_DeleteItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_Key_ToDafny(input.Key), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_Expected_ToDafny(input.Expected), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ConditionalOperator_ToDafny(input.ConditionalOperator), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnValues_ToDafny(input.ReturnValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnItemCollectionMetrics_ToDafny(input.ReturnItemCollectionMetrics), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ConditionExpression_ToDafny(input.ConditionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ExpressionAttributeValues_ToDafny(input.ExpressionAttributeValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnValuesOnConditionCheckFailure_ToDafny(input.ReturnValuesOnConditionCheckFailure))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemOutputTransformOutput_transformedOutput_ToDafny(input dynamodb.DeleteItemOutput) ComAmazonawsDynamodbTypes.DeleteItemOutput {
+	return func() ComAmazonawsDynamodbTypes.DeleteItemOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_DeleteItemOutput_.Create_DeleteItemOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemOutput_Attributes_ToDafny(input.Attributes), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemOutput_ItemCollectionMetrics_ToDafny(input.ItemCollectionMetrics))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementInputTransformInput_sdkInput_ToDafny(input dynamodb.ExecuteStatementInput) ComAmazonawsDynamodbTypes.ExecuteStatementInput {
+	return func() ComAmazonawsDynamodbTypes.ExecuteStatementInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_ExecuteStatementInput_.Create_ExecuteStatementInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Statement_ToDafny(input.Statement), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Parameters_ToDafny(input.Parameters), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ConsistentRead_ToDafny(input.ConsistentRead), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_NextToken_ToDafny(input.NextToken), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Limit_ToDafny(input.Limit), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ReturnValuesOnConditionCheckFailure_ToDafny(input.ReturnValuesOnConditionCheckFailure))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementInputTransformOutput_transformedInput_ToDafny(input dynamodb.ExecuteStatementInput) ComAmazonawsDynamodbTypes.ExecuteStatementInput {
+	return func() ComAmazonawsDynamodbTypes.ExecuteStatementInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_ExecuteStatementInput_.Create_ExecuteStatementInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Statement_ToDafny(input.Statement), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Parameters_ToDafny(input.Parameters), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ConsistentRead_ToDafny(input.ConsistentRead), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_NextToken_ToDafny(input.NextToken), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Limit_ToDafny(input.Limit), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ReturnValuesOnConditionCheckFailure_ToDafny(input.ReturnValuesOnConditionCheckFailure))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementOutputTransformInput_sdkOutput_ToDafny(input dynamodb.ExecuteStatementOutput) ComAmazonawsDynamodbTypes.ExecuteStatementOutput {
+	return func() ComAmazonawsDynamodbTypes.ExecuteStatementOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_ExecuteStatementOutput_.Create_ExecuteStatementOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementOutput_Items_ToDafny(input.Items), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementOutput_NextToken_ToDafny(input.NextToken), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementOutput_LastEvaluatedKey_ToDafny(input.LastEvaluatedKey))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementOutputTransformInput_originalInput_ToDafny(input dynamodb.ExecuteStatementInput) ComAmazonawsDynamodbTypes.ExecuteStatementInput {
+	return func() ComAmazonawsDynamodbTypes.ExecuteStatementInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_ExecuteStatementInput_.Create_ExecuteStatementInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Statement_ToDafny(input.Statement), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Parameters_ToDafny(input.Parameters), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ConsistentRead_ToDafny(input.ConsistentRead), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_NextToken_ToDafny(input.NextToken), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Limit_ToDafny(input.Limit), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ReturnValuesOnConditionCheckFailure_ToDafny(input.ReturnValuesOnConditionCheckFailure))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementOutputTransformOutput_transformedOutput_ToDafny(input dynamodb.ExecuteStatementOutput) ComAmazonawsDynamodbTypes.ExecuteStatementOutput {
+	return func() ComAmazonawsDynamodbTypes.ExecuteStatementOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_ExecuteStatementOutput_.Create_ExecuteStatementOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementOutput_Items_ToDafny(input.Items), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementOutput_NextToken_ToDafny(input.NextToken), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementOutput_LastEvaluatedKey_ToDafny(input.LastEvaluatedKey))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionInputTransformInput_sdkInput_ToDafny(input dynamodb.ExecuteTransactionInput) ComAmazonawsDynamodbTypes.ExecuteTransactionInput {
+	return func() ComAmazonawsDynamodbTypes.ExecuteTransactionInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_ExecuteTransactionInput_.Create_ExecuteTransactionInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_TransactStatements_ToDafny(input.TransactStatements), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_ClientRequestToken_ToDafny(input.ClientRequestToken), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionInputTransformOutput_transformedInput_ToDafny(input dynamodb.ExecuteTransactionInput) ComAmazonawsDynamodbTypes.ExecuteTransactionInput {
+	return func() ComAmazonawsDynamodbTypes.ExecuteTransactionInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_ExecuteTransactionInput_.Create_ExecuteTransactionInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_TransactStatements_ToDafny(input.TransactStatements), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_ClientRequestToken_ToDafny(input.ClientRequestToken), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionOutputTransformInput_sdkOutput_ToDafny(input dynamodb.ExecuteTransactionOutput) ComAmazonawsDynamodbTypes.ExecuteTransactionOutput {
+	return func() ComAmazonawsDynamodbTypes.ExecuteTransactionOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_ExecuteTransactionOutput_.Create_ExecuteTransactionOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionOutput_Responses_ToDafny(input.Responses), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionOutputTransformInput_originalInput_ToDafny(input dynamodb.ExecuteTransactionInput) ComAmazonawsDynamodbTypes.ExecuteTransactionInput {
+	return func() ComAmazonawsDynamodbTypes.ExecuteTransactionInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_ExecuteTransactionInput_.Create_ExecuteTransactionInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_TransactStatements_ToDafny(input.TransactStatements), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_ClientRequestToken_ToDafny(input.ClientRequestToken), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionOutputTransformOutput_transformedOutput_ToDafny(input dynamodb.ExecuteTransactionOutput) ComAmazonawsDynamodbTypes.ExecuteTransactionOutput {
+	return func() ComAmazonawsDynamodbTypes.ExecuteTransactionOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_ExecuteTransactionOutput_.Create_ExecuteTransactionOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionOutput_Responses_ToDafny(input.Responses), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemInputTransformInput_sdkInput_ToDafny(input dynamodb.GetItemInput) ComAmazonawsDynamodbTypes.GetItemInput {
+	return func() ComAmazonawsDynamodbTypes.GetItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_GetItemInput_.Create_GetItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_Key_ToDafny(input.Key), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_AttributesToGet_ToDafny(input.AttributesToGet), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ConsistentRead_ToDafny(input.ConsistentRead), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ProjectionExpression_ToDafny(input.ProjectionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemInputTransformOutput_transformedInput_ToDafny(input dynamodb.GetItemInput) ComAmazonawsDynamodbTypes.GetItemInput {
+	return func() ComAmazonawsDynamodbTypes.GetItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_GetItemInput_.Create_GetItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_Key_ToDafny(input.Key), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_AttributesToGet_ToDafny(input.AttributesToGet), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ConsistentRead_ToDafny(input.ConsistentRead), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ProjectionExpression_ToDafny(input.ProjectionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemOutputTransformInput_sdkOutput_ToDafny(input dynamodb.GetItemOutput) ComAmazonawsDynamodbTypes.GetItemOutput {
+	return func() ComAmazonawsDynamodbTypes.GetItemOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_GetItemOutput_.Create_GetItemOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemOutput_Item_ToDafny(input.Item), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemOutputTransformInput_originalInput_ToDafny(input dynamodb.GetItemInput) ComAmazonawsDynamodbTypes.GetItemInput {
+	return func() ComAmazonawsDynamodbTypes.GetItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_GetItemInput_.Create_GetItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_Key_ToDafny(input.Key), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_AttributesToGet_ToDafny(input.AttributesToGet), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ConsistentRead_ToDafny(input.ConsistentRead), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ProjectionExpression_ToDafny(input.ProjectionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemOutputTransformOutput_transformedOutput_ToDafny(input dynamodb.GetItemOutput) ComAmazonawsDynamodbTypes.GetItemOutput {
+	return func() ComAmazonawsDynamodbTypes.GetItemOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_GetItemOutput_.Create_GetItemOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemOutput_Item_ToDafny(input.Item), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemInputTransformInput_sdkInput_ToDafny(input dynamodb.PutItemInput) ComAmazonawsDynamodbTypes.PutItemInput {
+	return func() ComAmazonawsDynamodbTypes.PutItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_PutItemInput_.Create_PutItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_Item_ToDafny(input.Item), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_Expected_ToDafny(input.Expected), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnValues_ToDafny(input.ReturnValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnItemCollectionMetrics_ToDafny(input.ReturnItemCollectionMetrics), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ConditionalOperator_ToDafny(input.ConditionalOperator), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ConditionExpression_ToDafny(input.ConditionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ExpressionAttributeValues_ToDafny(input.ExpressionAttributeValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnValuesOnConditionCheckFailure_ToDafny(input.ReturnValuesOnConditionCheckFailure))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemInputTransformOutput_transformedInput_ToDafny(input dynamodb.PutItemInput) ComAmazonawsDynamodbTypes.PutItemInput {
+	return func() ComAmazonawsDynamodbTypes.PutItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_PutItemInput_.Create_PutItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_Item_ToDafny(input.Item), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_Expected_ToDafny(input.Expected), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnValues_ToDafny(input.ReturnValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnItemCollectionMetrics_ToDafny(input.ReturnItemCollectionMetrics), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ConditionalOperator_ToDafny(input.ConditionalOperator), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ConditionExpression_ToDafny(input.ConditionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ExpressionAttributeValues_ToDafny(input.ExpressionAttributeValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnValuesOnConditionCheckFailure_ToDafny(input.ReturnValuesOnConditionCheckFailure))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemOutputTransformInput_sdkOutput_ToDafny(input dynamodb.PutItemOutput) ComAmazonawsDynamodbTypes.PutItemOutput {
+	return func() ComAmazonawsDynamodbTypes.PutItemOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_PutItemOutput_.Create_PutItemOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemOutput_Attributes_ToDafny(input.Attributes), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemOutput_ItemCollectionMetrics_ToDafny(input.ItemCollectionMetrics))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemOutputTransformInput_originalInput_ToDafny(input dynamodb.PutItemInput) ComAmazonawsDynamodbTypes.PutItemInput {
+	return func() ComAmazonawsDynamodbTypes.PutItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_PutItemInput_.Create_PutItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_Item_ToDafny(input.Item), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_Expected_ToDafny(input.Expected), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnValues_ToDafny(input.ReturnValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnItemCollectionMetrics_ToDafny(input.ReturnItemCollectionMetrics), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ConditionalOperator_ToDafny(input.ConditionalOperator), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ConditionExpression_ToDafny(input.ConditionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ExpressionAttributeValues_ToDafny(input.ExpressionAttributeValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnValuesOnConditionCheckFailure_ToDafny(input.ReturnValuesOnConditionCheckFailure))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemOutputTransformOutput_transformedOutput_ToDafny(input dynamodb.PutItemOutput) ComAmazonawsDynamodbTypes.PutItemOutput {
+	return func() ComAmazonawsDynamodbTypes.PutItemOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_PutItemOutput_.Create_PutItemOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemOutput_Attributes_ToDafny(input.Attributes), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemOutput_ItemCollectionMetrics_ToDafny(input.ItemCollectionMetrics))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryInputTransformInput_sdkInput_ToDafny(input dynamodb.QueryInput) ComAmazonawsDynamodbTypes.QueryInput {
+	return func() ComAmazonawsDynamodbTypes.QueryInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_QueryInput_.Create_QueryInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_IndexName_ToDafny(input.IndexName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_Select_ToDafny(input.Select), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_AttributesToGet_ToDafny(input.AttributesToGet), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_Limit_ToDafny(input.Limit), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ConsistentRead_ToDafny(input.ConsistentRead), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_KeyConditions_ToDafny(input.KeyConditions), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_QueryFilter_ToDafny(input.QueryFilter), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ConditionalOperator_ToDafny(input.ConditionalOperator), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ScanIndexForward_ToDafny(input.ScanIndexForward), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExclusiveStartKey_ToDafny(input.ExclusiveStartKey), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ProjectionExpression_ToDafny(input.ProjectionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_FilterExpression_ToDafny(input.FilterExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_KeyConditionExpression_ToDafny(input.KeyConditionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExpressionAttributeValues_ToDafny(input.ExpressionAttributeValues))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryInputTransformOutput_transformedInput_ToDafny(input dynamodb.QueryInput) ComAmazonawsDynamodbTypes.QueryInput {
+	return func() ComAmazonawsDynamodbTypes.QueryInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_QueryInput_.Create_QueryInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_IndexName_ToDafny(input.IndexName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_Select_ToDafny(input.Select), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_AttributesToGet_ToDafny(input.AttributesToGet), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_Limit_ToDafny(input.Limit), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ConsistentRead_ToDafny(input.ConsistentRead), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_KeyConditions_ToDafny(input.KeyConditions), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_QueryFilter_ToDafny(input.QueryFilter), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ConditionalOperator_ToDafny(input.ConditionalOperator), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ScanIndexForward_ToDafny(input.ScanIndexForward), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExclusiveStartKey_ToDafny(input.ExclusiveStartKey), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ProjectionExpression_ToDafny(input.ProjectionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_FilterExpression_ToDafny(input.FilterExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_KeyConditionExpression_ToDafny(input.KeyConditionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExpressionAttributeValues_ToDafny(input.ExpressionAttributeValues))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryOutputTransformInput_sdkOutput_ToDafny(input dynamodb.QueryOutput) ComAmazonawsDynamodbTypes.QueryOutput {
+	return func() ComAmazonawsDynamodbTypes.QueryOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_QueryOutput_.Create_QueryOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_Items_ToDafny(input.Items), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_Count_ToDafny(input.Count), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_ScannedCount_ToDafny(input.ScannedCount), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_LastEvaluatedKey_ToDafny(input.LastEvaluatedKey), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryOutputTransformInput_originalInput_ToDafny(input dynamodb.QueryInput) ComAmazonawsDynamodbTypes.QueryInput {
+	return func() ComAmazonawsDynamodbTypes.QueryInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_QueryInput_.Create_QueryInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_IndexName_ToDafny(input.IndexName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_Select_ToDafny(input.Select), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_AttributesToGet_ToDafny(input.AttributesToGet), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_Limit_ToDafny(input.Limit), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ConsistentRead_ToDafny(input.ConsistentRead), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_KeyConditions_ToDafny(input.KeyConditions), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_QueryFilter_ToDafny(input.QueryFilter), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ConditionalOperator_ToDafny(input.ConditionalOperator), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ScanIndexForward_ToDafny(input.ScanIndexForward), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExclusiveStartKey_ToDafny(input.ExclusiveStartKey), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ProjectionExpression_ToDafny(input.ProjectionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_FilterExpression_ToDafny(input.FilterExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_KeyConditionExpression_ToDafny(input.KeyConditionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExpressionAttributeValues_ToDafny(input.ExpressionAttributeValues))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryOutputTransformOutput_transformedOutput_ToDafny(input dynamodb.QueryOutput) ComAmazonawsDynamodbTypes.QueryOutput {
+	return func() ComAmazonawsDynamodbTypes.QueryOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_QueryOutput_.Create_QueryOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_Items_ToDafny(input.Items), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_Count_ToDafny(input.Count), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_ScannedCount_ToDafny(input.ScannedCount), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_LastEvaluatedKey_ToDafny(input.LastEvaluatedKey), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesInput_TableName_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesInput_Item_ToDafny(input map[string]dynamodbtypes.AttributeValue) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_key_ToDafny(key), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesInput_Version_ToDafny(input *int32) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		return Wrappers.Companion_Option_.Create_Some_(*input)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesOutput_VirtualFields_ToDafny(input map[string]string) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_StringMap_key_ToDafny(key), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_StringMap_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_StringMap_key_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_StringMap_value_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesOutput_CompoundBeacons_ToDafny(input map[string]string) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_StringMap_key_ToDafny(key), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_StringMap_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanInputTransformInput_sdkInput_ToDafny(input dynamodb.ScanInput) ComAmazonawsDynamodbTypes.ScanInput {
+	return func() ComAmazonawsDynamodbTypes.ScanInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_ScanInput_.Create_ScanInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_IndexName_ToDafny(input.IndexName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_AttributesToGet_ToDafny(input.AttributesToGet), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Limit_ToDafny(input.Limit), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Select_ToDafny(input.Select), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ScanFilter_ToDafny(input.ScanFilter), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ConditionalOperator_ToDafny(input.ConditionalOperator), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExclusiveStartKey_ToDafny(input.ExclusiveStartKey), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_TotalSegments_ToDafny(input.TotalSegments), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Segment_ToDafny(input.Segment), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ProjectionExpression_ToDafny(input.ProjectionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_FilterExpression_ToDafny(input.FilterExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExpressionAttributeValues_ToDafny(input.ExpressionAttributeValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ConsistentRead_ToDafny(input.ConsistentRead))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanInputTransformOutput_transformedInput_ToDafny(input dynamodb.ScanInput) ComAmazonawsDynamodbTypes.ScanInput {
+	return func() ComAmazonawsDynamodbTypes.ScanInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_ScanInput_.Create_ScanInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_IndexName_ToDafny(input.IndexName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_AttributesToGet_ToDafny(input.AttributesToGet), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Limit_ToDafny(input.Limit), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Select_ToDafny(input.Select), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ScanFilter_ToDafny(input.ScanFilter), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ConditionalOperator_ToDafny(input.ConditionalOperator), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExclusiveStartKey_ToDafny(input.ExclusiveStartKey), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_TotalSegments_ToDafny(input.TotalSegments), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Segment_ToDafny(input.Segment), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ProjectionExpression_ToDafny(input.ProjectionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_FilterExpression_ToDafny(input.FilterExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExpressionAttributeValues_ToDafny(input.ExpressionAttributeValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ConsistentRead_ToDafny(input.ConsistentRead))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanOutputTransformInput_sdkOutput_ToDafny(input dynamodb.ScanOutput) ComAmazonawsDynamodbTypes.ScanOutput {
+	return func() ComAmazonawsDynamodbTypes.ScanOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_ScanOutput_.Create_ScanOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_Items_ToDafny(input.Items), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_Count_ToDafny(input.Count), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_ScannedCount_ToDafny(input.ScannedCount), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_LastEvaluatedKey_ToDafny(input.LastEvaluatedKey), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanOutputTransformInput_originalInput_ToDafny(input dynamodb.ScanInput) ComAmazonawsDynamodbTypes.ScanInput {
+	return func() ComAmazonawsDynamodbTypes.ScanInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_ScanInput_.Create_ScanInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_IndexName_ToDafny(input.IndexName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_AttributesToGet_ToDafny(input.AttributesToGet), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Limit_ToDafny(input.Limit), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Select_ToDafny(input.Select), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ScanFilter_ToDafny(input.ScanFilter), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ConditionalOperator_ToDafny(input.ConditionalOperator), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExclusiveStartKey_ToDafny(input.ExclusiveStartKey), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_TotalSegments_ToDafny(input.TotalSegments), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Segment_ToDafny(input.Segment), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ProjectionExpression_ToDafny(input.ProjectionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_FilterExpression_ToDafny(input.FilterExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExpressionAttributeValues_ToDafny(input.ExpressionAttributeValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ConsistentRead_ToDafny(input.ConsistentRead))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanOutputTransformOutput_transformedOutput_ToDafny(input dynamodb.ScanOutput) ComAmazonawsDynamodbTypes.ScanOutput {
+	return func() ComAmazonawsDynamodbTypes.ScanOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_ScanOutput_.Create_ScanOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_Items_ToDafny(input.Items), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_Count_ToDafny(input.Count), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_ScannedCount_ToDafny(input.ScannedCount), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_LastEvaluatedKey_ToDafny(input.LastEvaluatedKey), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsInputTransformInput_sdkInput_ToDafny(input dynamodb.TransactGetItemsInput) ComAmazonawsDynamodbTypes.TransactGetItemsInput {
+	return func() ComAmazonawsDynamodbTypes.TransactGetItemsInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_TransactGetItemsInput_.Create_TransactGetItemsInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsInput_TransactItems_ToDafny(input.TransactItems), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsInputTransformOutput_transformedInput_ToDafny(input dynamodb.TransactGetItemsInput) ComAmazonawsDynamodbTypes.TransactGetItemsInput {
+	return func() ComAmazonawsDynamodbTypes.TransactGetItemsInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_TransactGetItemsInput_.Create_TransactGetItemsInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsInput_TransactItems_ToDafny(input.TransactItems), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsOutputTransformInput_sdkOutput_ToDafny(input dynamodb.TransactGetItemsOutput) ComAmazonawsDynamodbTypes.TransactGetItemsOutput {
+	return func() ComAmazonawsDynamodbTypes.TransactGetItemsOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_TransactGetItemsOutput_.Create_TransactGetItemsOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsOutput_Responses_ToDafny(input.Responses))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsOutputTransformInput_originalInput_ToDafny(input dynamodb.TransactGetItemsInput) ComAmazonawsDynamodbTypes.TransactGetItemsInput {
+	return func() ComAmazonawsDynamodbTypes.TransactGetItemsInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_TransactGetItemsInput_.Create_TransactGetItemsInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsInput_TransactItems_ToDafny(input.TransactItems), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsOutputTransformOutput_transformedOutput_ToDafny(input dynamodb.TransactGetItemsOutput) ComAmazonawsDynamodbTypes.TransactGetItemsOutput {
+	return func() ComAmazonawsDynamodbTypes.TransactGetItemsOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_TransactGetItemsOutput_.Create_TransactGetItemsOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsOutput_Responses_ToDafny(input.Responses))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsInputTransformInput_sdkInput_ToDafny(input dynamodb.TransactWriteItemsInput) ComAmazonawsDynamodbTypes.TransactWriteItemsInput {
+	return func() ComAmazonawsDynamodbTypes.TransactWriteItemsInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_TransactWriteItemsInput_.Create_TransactWriteItemsInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_TransactItems_ToDafny(input.TransactItems), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ReturnItemCollectionMetrics_ToDafny(input.ReturnItemCollectionMetrics), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ClientRequestToken_ToDafny(input.ClientRequestToken))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsInputTransformOutput_transformedInput_ToDafny(input dynamodb.TransactWriteItemsInput) ComAmazonawsDynamodbTypes.TransactWriteItemsInput {
+	return func() ComAmazonawsDynamodbTypes.TransactWriteItemsInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_TransactWriteItemsInput_.Create_TransactWriteItemsInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_TransactItems_ToDafny(input.TransactItems), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ReturnItemCollectionMetrics_ToDafny(input.ReturnItemCollectionMetrics), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ClientRequestToken_ToDafny(input.ClientRequestToken))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsOutputTransformInput_sdkOutput_ToDafny(input dynamodb.TransactWriteItemsOutput) ComAmazonawsDynamodbTypes.TransactWriteItemsOutput {
+	return func() ComAmazonawsDynamodbTypes.TransactWriteItemsOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_TransactWriteItemsOutput_.Create_TransactWriteItemsOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsOutput_ItemCollectionMetrics_ToDafny(input.ItemCollectionMetrics))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsOutputTransformInput_originalInput_ToDafny(input dynamodb.TransactWriteItemsInput) ComAmazonawsDynamodbTypes.TransactWriteItemsInput {
+	return func() ComAmazonawsDynamodbTypes.TransactWriteItemsInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_TransactWriteItemsInput_.Create_TransactWriteItemsInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_TransactItems_ToDafny(input.TransactItems), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ReturnItemCollectionMetrics_ToDafny(input.ReturnItemCollectionMetrics), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ClientRequestToken_ToDafny(input.ClientRequestToken))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsOutputTransformOutput_transformedOutput_ToDafny(input dynamodb.TransactWriteItemsOutput) ComAmazonawsDynamodbTypes.TransactWriteItemsOutput {
+	return func() ComAmazonawsDynamodbTypes.TransactWriteItemsOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_TransactWriteItemsOutput_.Create_TransactWriteItemsOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsOutput_ItemCollectionMetrics_ToDafny(input.ItemCollectionMetrics))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemInputTransformInput_sdkInput_ToDafny(input dynamodb.UpdateItemInput) ComAmazonawsDynamodbTypes.UpdateItemInput {
+	return func() ComAmazonawsDynamodbTypes.UpdateItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_UpdateItemInput_.Create_UpdateItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_Key_ToDafny(input.Key), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_AttributeUpdates_ToDafny(input.AttributeUpdates), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_Expected_ToDafny(input.Expected), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ConditionalOperator_ToDafny(input.ConditionalOperator), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnValues_ToDafny(input.ReturnValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnItemCollectionMetrics_ToDafny(input.ReturnItemCollectionMetrics), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_UpdateExpression_ToDafny(input.UpdateExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ConditionExpression_ToDafny(input.ConditionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ExpressionAttributeValues_ToDafny(input.ExpressionAttributeValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnValuesOnConditionCheckFailure_ToDafny(input.ReturnValuesOnConditionCheckFailure))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemInputTransformOutput_transformedInput_ToDafny(input dynamodb.UpdateItemInput) ComAmazonawsDynamodbTypes.UpdateItemInput {
+	return func() ComAmazonawsDynamodbTypes.UpdateItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_UpdateItemInput_.Create_UpdateItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_Key_ToDafny(input.Key), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_AttributeUpdates_ToDafny(input.AttributeUpdates), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_Expected_ToDafny(input.Expected), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ConditionalOperator_ToDafny(input.ConditionalOperator), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnValues_ToDafny(input.ReturnValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnItemCollectionMetrics_ToDafny(input.ReturnItemCollectionMetrics), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_UpdateExpression_ToDafny(input.UpdateExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ConditionExpression_ToDafny(input.ConditionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ExpressionAttributeValues_ToDafny(input.ExpressionAttributeValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnValuesOnConditionCheckFailure_ToDafny(input.ReturnValuesOnConditionCheckFailure))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemOutputTransformInput_sdkOutput_ToDafny(input dynamodb.UpdateItemOutput) ComAmazonawsDynamodbTypes.UpdateItemOutput {
+	return func() ComAmazonawsDynamodbTypes.UpdateItemOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_UpdateItemOutput_.Create_UpdateItemOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemOutput_Attributes_ToDafny(input.Attributes), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemOutput_ItemCollectionMetrics_ToDafny(input.ItemCollectionMetrics))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemOutputTransformInput_originalInput_ToDafny(input dynamodb.UpdateItemInput) ComAmazonawsDynamodbTypes.UpdateItemInput {
+	return func() ComAmazonawsDynamodbTypes.UpdateItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_UpdateItemInput_.Create_UpdateItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_Key_ToDafny(input.Key), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_AttributeUpdates_ToDafny(input.AttributeUpdates), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_Expected_ToDafny(input.Expected), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ConditionalOperator_ToDafny(input.ConditionalOperator), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnValues_ToDafny(input.ReturnValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnItemCollectionMetrics_ToDafny(input.ReturnItemCollectionMetrics), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_UpdateExpression_ToDafny(input.UpdateExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ConditionExpression_ToDafny(input.ConditionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ExpressionAttributeValues_ToDafny(input.ExpressionAttributeValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnValuesOnConditionCheckFailure_ToDafny(input.ReturnValuesOnConditionCheckFailure))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemOutputTransformOutput_transformedOutput_ToDafny(input dynamodb.UpdateItemOutput) ComAmazonawsDynamodbTypes.UpdateItemOutput {
+	return func() ComAmazonawsDynamodbTypes.UpdateItemOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_UpdateItemOutput_.Create_UpdateItemOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemOutput_Attributes_ToDafny(input.Attributes), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemOutput_ItemCollectionMetrics_ToDafny(input.ItemCollectionMetrics))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DynamoDbEncryptionTransformsException_message_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygenerated/to_native.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygenerated/to_native.go
new file mode 100644
index 000000000..851f227fb
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygenerated/to_native.go
@@ -0,0 +1,1098 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbtransformssmithygenerated
+
+import (
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/comamazonawsdynamodbsmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygenerated"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated"
+	"github.com/aws/aws-sdk-go-v2/service/dynamodb"
+	dynamodbtypes "github.com/aws/aws-sdk-go-v2/service/dynamodb/types"
+	"github.com/dafny-lang/DafnyRuntimeGo/v4/dafny"
+)
+
+func BatchExecuteStatementInputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementInputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementInputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementInputTransformInput{SdkInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementInputTransformInput_sdkInput_FromDafny(dafnyInput.Dtor_sdkInput())}
+
+}
+
+func BatchExecuteStatementInputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementInputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementInputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementInputTransformOutput{TransformedInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementInputTransformOutput_transformedInput_FromDafny(dafnyOutput.Dtor_transformedInput())}
+
+}
+
+func BatchExecuteStatementOutputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementOutputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementOutputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementOutputTransformInput{SdkOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementOutputTransformInput_sdkOutput_FromDafny(dafnyInput.Dtor_sdkOutput()),
+		OriginalInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementOutputTransformInput_originalInput_FromDafny(dafnyInput.Dtor_originalInput()),
+	}
+
+}
+
+func BatchExecuteStatementOutputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementOutputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementOutputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementOutputTransformOutput{TransformedOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementOutputTransformOutput_transformedOutput_FromDafny(dafnyOutput.Dtor_transformedOutput())}
+
+}
+
+func BatchGetItemInputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemInputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemInputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemInputTransformInput{SdkInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemInputTransformInput_sdkInput_FromDafny(dafnyInput.Dtor_sdkInput())}
+
+}
+
+func BatchGetItemInputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemInputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemInputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemInputTransformOutput{TransformedInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemInputTransformOutput_transformedInput_FromDafny(dafnyOutput.Dtor_transformedInput())}
+
+}
+
+func BatchGetItemOutputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemOutputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemOutputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemOutputTransformInput{SdkOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemOutputTransformInput_sdkOutput_FromDafny(dafnyInput.Dtor_sdkOutput()),
+		OriginalInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemOutputTransformInput_originalInput_FromDafny(dafnyInput.Dtor_originalInput()),
+	}
+
+}
+
+func BatchGetItemOutputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemOutputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemOutputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemOutputTransformOutput{TransformedOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemOutputTransformOutput_transformedOutput_FromDafny(dafnyOutput.Dtor_transformedOutput())}
+
+}
+
+func BatchWriteItemInputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemInputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemInputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemInputTransformInput{SdkInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemInputTransformInput_sdkInput_FromDafny(dafnyInput.Dtor_sdkInput())}
+
+}
+
+func BatchWriteItemInputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemInputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemInputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemInputTransformOutput{TransformedInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemInputTransformOutput_transformedInput_FromDafny(dafnyOutput.Dtor_transformedInput())}
+
+}
+
+func BatchWriteItemOutputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemOutputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemOutputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemOutputTransformInput{SdkOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemOutputTransformInput_sdkOutput_FromDafny(dafnyInput.Dtor_sdkOutput()),
+		OriginalInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemOutputTransformInput_originalInput_FromDafny(dafnyInput.Dtor_originalInput()),
+	}
+
+}
+
+func BatchWriteItemOutputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemOutputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemOutputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemOutputTransformOutput{TransformedOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemOutputTransformOutput_transformedOutput_FromDafny(dafnyOutput.Dtor_transformedOutput())}
+
+}
+
+func DeleteItemInputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemInputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemInputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemInputTransformInput{SdkInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemInputTransformInput_sdkInput_FromDafny(dafnyInput.Dtor_sdkInput())}
+
+}
+
+func DeleteItemInputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemInputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemInputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemInputTransformOutput{TransformedInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemInputTransformOutput_transformedInput_FromDafny(dafnyOutput.Dtor_transformedInput())}
+
+}
+
+func DeleteItemOutputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemOutputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemOutputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemOutputTransformInput{SdkOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemOutputTransformInput_sdkOutput_FromDafny(dafnyInput.Dtor_sdkOutput()),
+		OriginalInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemOutputTransformInput_originalInput_FromDafny(dafnyInput.Dtor_originalInput()),
+	}
+
+}
+
+func DeleteItemOutputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemOutputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemOutputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemOutputTransformOutput{TransformedOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemOutputTransformOutput_transformedOutput_FromDafny(dafnyOutput.Dtor_transformedOutput())}
+
+}
+
+func ExecuteStatementInputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementInputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementInputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementInputTransformInput{SdkInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementInputTransformInput_sdkInput_FromDafny(dafnyInput.Dtor_sdkInput())}
+
+}
+
+func ExecuteStatementInputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementInputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementInputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementInputTransformOutput{TransformedInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementInputTransformOutput_transformedInput_FromDafny(dafnyOutput.Dtor_transformedInput())}
+
+}
+
+func ExecuteStatementOutputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementOutputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementOutputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementOutputTransformInput{SdkOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementOutputTransformInput_sdkOutput_FromDafny(dafnyInput.Dtor_sdkOutput()),
+		OriginalInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementOutputTransformInput_originalInput_FromDafny(dafnyInput.Dtor_originalInput()),
+	}
+
+}
+
+func ExecuteStatementOutputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementOutputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementOutputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementOutputTransformOutput{TransformedOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementOutputTransformOutput_transformedOutput_FromDafny(dafnyOutput.Dtor_transformedOutput())}
+
+}
+
+func ExecuteTransactionInputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionInputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionInputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionInputTransformInput{SdkInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionInputTransformInput_sdkInput_FromDafny(dafnyInput.Dtor_sdkInput())}
+
+}
+
+func ExecuteTransactionInputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionInputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionInputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionInputTransformOutput{TransformedInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionInputTransformOutput_transformedInput_FromDafny(dafnyOutput.Dtor_transformedInput())}
+
+}
+
+func ExecuteTransactionOutputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionOutputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionOutputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionOutputTransformInput{SdkOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionOutputTransformInput_sdkOutput_FromDafny(dafnyInput.Dtor_sdkOutput()),
+		OriginalInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionOutputTransformInput_originalInput_FromDafny(dafnyInput.Dtor_originalInput()),
+	}
+
+}
+
+func ExecuteTransactionOutputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionOutputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionOutputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionOutputTransformOutput{TransformedOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionOutputTransformOutput_transformedOutput_FromDafny(dafnyOutput.Dtor_transformedOutput())}
+
+}
+
+func GetItemInputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemInputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemInputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemInputTransformInput{SdkInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemInputTransformInput_sdkInput_FromDafny(dafnyInput.Dtor_sdkInput())}
+
+}
+
+func GetItemInputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemInputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemInputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemInputTransformOutput{TransformedInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemInputTransformOutput_transformedInput_FromDafny(dafnyOutput.Dtor_transformedInput())}
+
+}
+
+func GetItemOutputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemOutputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemOutputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemOutputTransformInput{SdkOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemOutputTransformInput_sdkOutput_FromDafny(dafnyInput.Dtor_sdkOutput()),
+		OriginalInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemOutputTransformInput_originalInput_FromDafny(dafnyInput.Dtor_originalInput()),
+	}
+
+}
+
+func GetItemOutputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemOutputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemOutputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemOutputTransformOutput{TransformedOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemOutputTransformOutput_transformedOutput_FromDafny(dafnyOutput.Dtor_transformedOutput())}
+
+}
+
+func PutItemInputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemInputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemInputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemInputTransformInput{SdkInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemInputTransformInput_sdkInput_FromDafny(dafnyInput.Dtor_sdkInput())}
+
+}
+
+func PutItemInputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemInputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemInputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemInputTransformOutput{TransformedInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemInputTransformOutput_transformedInput_FromDafny(dafnyOutput.Dtor_transformedInput())}
+
+}
+
+func PutItemOutputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemOutputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemOutputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemOutputTransformInput{SdkOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemOutputTransformInput_sdkOutput_FromDafny(dafnyInput.Dtor_sdkOutput()),
+		OriginalInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemOutputTransformInput_originalInput_FromDafny(dafnyInput.Dtor_originalInput()),
+	}
+
+}
+
+func PutItemOutputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemOutputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemOutputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemOutputTransformOutput{TransformedOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemOutputTransformOutput_transformedOutput_FromDafny(dafnyOutput.Dtor_transformedOutput())}
+
+}
+
+func QueryInputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryInputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryInputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryInputTransformInput{SdkInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryInputTransformInput_sdkInput_FromDafny(dafnyInput.Dtor_sdkInput())}
+
+}
+
+func QueryInputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryInputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryInputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryInputTransformOutput{TransformedInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryInputTransformOutput_transformedInput_FromDafny(dafnyOutput.Dtor_transformedInput())}
+
+}
+
+func QueryOutputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryOutputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryOutputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryOutputTransformInput{SdkOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryOutputTransformInput_sdkOutput_FromDafny(dafnyInput.Dtor_sdkOutput()),
+		OriginalInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryOutputTransformInput_originalInput_FromDafny(dafnyInput.Dtor_originalInput()),
+	}
+
+}
+
+func QueryOutputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryOutputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryOutputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryOutputTransformOutput{TransformedOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryOutputTransformOutput_transformedOutput_FromDafny(dafnyOutput.Dtor_transformedOutput())}
+
+}
+
+func ResolveAttributesInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ResolveAttributesInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ResolveAttributesInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ResolveAttributesInput{TableName: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesInput_TableName_FromDafny(dafnyInput.Dtor_TableName()),
+		Item:    Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesInput_Item_FromDafny(dafnyInput.Dtor_Item()),
+		Version: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesInput_Version_FromDafny(dafnyInput.Dtor_Version().UnwrapOr(nil)),
+	}
+
+}
+
+func ResolveAttributesOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ResolveAttributesOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ResolveAttributesOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ResolveAttributesOutput{VirtualFields: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesOutput_VirtualFields_FromDafny(dafnyOutput.Dtor_VirtualFields()),
+		CompoundBeacons: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesOutput_CompoundBeacons_FromDafny(dafnyOutput.Dtor_CompoundBeacons()),
+	}
+
+}
+
+func ScanInputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanInputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanInputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanInputTransformInput{SdkInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanInputTransformInput_sdkInput_FromDafny(dafnyInput.Dtor_sdkInput())}
+
+}
+
+func ScanInputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanInputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanInputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanInputTransformOutput{TransformedInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanInputTransformOutput_transformedInput_FromDafny(dafnyOutput.Dtor_transformedInput())}
+
+}
+
+func ScanOutputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanOutputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanOutputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanOutputTransformInput{SdkOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanOutputTransformInput_sdkOutput_FromDafny(dafnyInput.Dtor_sdkOutput()),
+		OriginalInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanOutputTransformInput_originalInput_FromDafny(dafnyInput.Dtor_originalInput()),
+	}
+
+}
+
+func ScanOutputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanOutputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanOutputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanOutputTransformOutput{TransformedOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanOutputTransformOutput_transformedOutput_FromDafny(dafnyOutput.Dtor_transformedOutput())}
+
+}
+
+func TransactGetItemsInputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsInputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsInputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsInputTransformInput{SdkInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsInputTransformInput_sdkInput_FromDafny(dafnyInput.Dtor_sdkInput())}
+
+}
+
+func TransactGetItemsInputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsInputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsInputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsInputTransformOutput{TransformedInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsInputTransformOutput_transformedInput_FromDafny(dafnyOutput.Dtor_transformedInput())}
+
+}
+
+func TransactGetItemsOutputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsOutputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsOutputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsOutputTransformInput{SdkOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsOutputTransformInput_sdkOutput_FromDafny(dafnyInput.Dtor_sdkOutput()),
+		OriginalInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsOutputTransformInput_originalInput_FromDafny(dafnyInput.Dtor_originalInput()),
+	}
+
+}
+
+func TransactGetItemsOutputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsOutputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsOutputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsOutputTransformOutput{TransformedOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsOutputTransformOutput_transformedOutput_FromDafny(dafnyOutput.Dtor_transformedOutput())}
+
+}
+
+func TransactWriteItemsInputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsInputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsInputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsInputTransformInput{SdkInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsInputTransformInput_sdkInput_FromDafny(dafnyInput.Dtor_sdkInput())}
+
+}
+
+func TransactWriteItemsInputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsInputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsInputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsInputTransformOutput{TransformedInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsInputTransformOutput_transformedInput_FromDafny(dafnyOutput.Dtor_transformedInput())}
+
+}
+
+func TransactWriteItemsOutputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsOutputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsOutputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsOutputTransformInput{SdkOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsOutputTransformInput_sdkOutput_FromDafny(dafnyInput.Dtor_sdkOutput()),
+		OriginalInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsOutputTransformInput_originalInput_FromDafny(dafnyInput.Dtor_originalInput()),
+	}
+
+}
+
+func TransactWriteItemsOutputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsOutputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsOutputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsOutputTransformOutput{TransformedOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsOutputTransformOutput_transformedOutput_FromDafny(dafnyOutput.Dtor_transformedOutput())}
+
+}
+
+func UpdateItemInputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemInputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemInputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemInputTransformInput{SdkInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemInputTransformInput_sdkInput_FromDafny(dafnyInput.Dtor_sdkInput())}
+
+}
+
+func UpdateItemInputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemInputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemInputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemInputTransformOutput{TransformedInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemInputTransformOutput_transformedInput_FromDafny(dafnyOutput.Dtor_transformedInput())}
+
+}
+
+func UpdateItemOutputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemOutputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemOutputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemOutputTransformInput{SdkOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemOutputTransformInput_sdkOutput_FromDafny(dafnyInput.Dtor_sdkOutput()),
+		OriginalInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemOutputTransformInput_originalInput_FromDafny(dafnyInput.Dtor_originalInput()),
+	}
+
+}
+
+func UpdateItemOutputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemOutputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemOutputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemOutputTransformOutput{TransformedOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemOutputTransformOutput_transformedOutput_FromDafny(dafnyOutput.Dtor_transformedOutput())}
+
+}
+
+func DynamoDbEncryptionTransformsException_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DynamoDbEncryptionTransformsException {
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DynamoDbEncryptionTransformsException{Message: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DynamoDbEncryptionTransformsException_message_FromDafny(dafnyOutput.Dtor_message())}
+
+}
+
+func CollectionOfErrors_Output_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.CollectionOfErrors {
+	listOfErrors := dafnyOutput.Dtor_list()
+	message := dafnyOutput.Dtor_message()
+	t := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.CollectionOfErrors{}
+	for i := dafny.Iterate(listOfErrors); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		err := val.(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		t.ListOfErrors = append(t.ListOfErrors, Error_FromDafny(err))
+
+	}
+	t.Message = func() string {
+		a := UTF8.Encode(message.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+		return s
+	}()
+	return t
+}
+func OpaqueError_Output_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError {
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+		ErrObject: dafnyOutput.Dtor_obj(),
+	}
+}
+
+func Error_FromDafny(err AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error) error {
+	// Service Errors
+	if err.Is_DynamoDbEncryptionTransformsException() {
+		return DynamoDbEncryptionTransformsException_FromDafny(err)
+	}
+
+	//DependentErrors
+	if err.Is_ComAmazonawsDynamodb() {
+		return comamazonawsdynamodbsmithygenerated.Error_FromDafny(err.Dtor_ComAmazonawsDynamodb())
+	}
+
+	if err.Is_AwsCryptographyDbEncryptionSdkDynamoDb() {
+		return awscryptographydbencryptionsdkdynamodbsmithygenerated.Error_FromDafny(err.Dtor_AwsCryptographyDbEncryptionSdkDynamoDb())
+	}
+
+	if err.Is_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptor() {
+		return awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated.Error_FromDafny(err.Dtor_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptor())
+	}
+
+	if err.Is_AwsCryptographyDbEncryptionSdkStructuredEncryption() {
+		return awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.Error_FromDafny(err.Dtor_AwsCryptographyDbEncryptionSdkStructuredEncryption())
+	}
+
+	if err.Is_AwsCryptographyMaterialProviders() {
+		return awscryptographymaterialproviderssmithygenerated.Error_FromDafny(err.Dtor_AwsCryptographyMaterialProviders())
+	}
+
+	//Unmodelled Errors
+	if err.Is_CollectionOfErrors() {
+		return CollectionOfErrors_Output_FromDafny(err)
+	}
+
+	return OpaqueError_Output_FromDafny(err)
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementInputTransformInput_sdkInput_FromDafny(input interface{}) dynamodb.BatchExecuteStatementInput {
+	return dynamodb.BatchExecuteStatementInput{Statements: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementInput_Statements_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchExecuteStatementInput).Dtor_Statements()),
+		ReturnConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchExecuteStatementInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementInputTransformOutput_transformedInput_FromDafny(input interface{}) dynamodb.BatchExecuteStatementInput {
+	return dynamodb.BatchExecuteStatementInput{Statements: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementInput_Statements_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchExecuteStatementInput).Dtor_Statements()),
+		ReturnConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchExecuteStatementInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementOutputTransformInput_sdkOutput_FromDafny(input interface{}) dynamodb.BatchExecuteStatementOutput {
+	return dynamodb.BatchExecuteStatementOutput{Responses: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementOutput_Responses_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchExecuteStatementOutput).Dtor_Responses().UnwrapOr(nil)),
+		ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchExecuteStatementOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementOutputTransformInput_originalInput_FromDafny(input interface{}) dynamodb.BatchExecuteStatementInput {
+	return dynamodb.BatchExecuteStatementInput{Statements: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementInput_Statements_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchExecuteStatementInput).Dtor_Statements()),
+		ReturnConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchExecuteStatementInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementOutputTransformOutput_transformedOutput_FromDafny(input interface{}) dynamodb.BatchExecuteStatementOutput {
+	return dynamodb.BatchExecuteStatementOutput{Responses: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementOutput_Responses_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchExecuteStatementOutput).Dtor_Responses().UnwrapOr(nil)),
+		ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchExecuteStatementOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemInputTransformInput_sdkInput_FromDafny(input interface{}) dynamodb.BatchGetItemInput {
+	return dynamodb.BatchGetItemInput{RequestItems: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemInput_RequestItems_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchGetItemInput).Dtor_RequestItems()),
+		ReturnConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchGetItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemInputTransformOutput_transformedInput_FromDafny(input interface{}) dynamodb.BatchGetItemInput {
+	return dynamodb.BatchGetItemInput{RequestItems: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemInput_RequestItems_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchGetItemInput).Dtor_RequestItems()),
+		ReturnConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchGetItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemOutputTransformInput_sdkOutput_FromDafny(input interface{}) dynamodb.BatchGetItemOutput {
+	return dynamodb.BatchGetItemOutput{Responses: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemOutput_Responses_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchGetItemOutput).Dtor_Responses().UnwrapOr(nil)),
+		UnprocessedKeys:  comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemOutput_UnprocessedKeys_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchGetItemOutput).Dtor_UnprocessedKeys().UnwrapOr(nil)),
+		ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchGetItemOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemOutputTransformInput_originalInput_FromDafny(input interface{}) dynamodb.BatchGetItemInput {
+	return dynamodb.BatchGetItemInput{RequestItems: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemInput_RequestItems_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchGetItemInput).Dtor_RequestItems()),
+		ReturnConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchGetItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemOutputTransformOutput_transformedOutput_FromDafny(input interface{}) dynamodb.BatchGetItemOutput {
+	return dynamodb.BatchGetItemOutput{Responses: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemOutput_Responses_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchGetItemOutput).Dtor_Responses().UnwrapOr(nil)),
+		UnprocessedKeys:  comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemOutput_UnprocessedKeys_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchGetItemOutput).Dtor_UnprocessedKeys().UnwrapOr(nil)),
+		ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchGetItemOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemInputTransformInput_sdkInput_FromDafny(input interface{}) dynamodb.BatchWriteItemInput {
+	return dynamodb.BatchWriteItemInput{RequestItems: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_RequestItems_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchWriteItemInput).Dtor_RequestItems()),
+		ReturnConsumedCapacity:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchWriteItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ReturnItemCollectionMetrics: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_ReturnItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchWriteItemInput).Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemInputTransformOutput_transformedInput_FromDafny(input interface{}) dynamodb.BatchWriteItemInput {
+	return dynamodb.BatchWriteItemInput{RequestItems: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_RequestItems_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchWriteItemInput).Dtor_RequestItems()),
+		ReturnConsumedCapacity:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchWriteItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ReturnItemCollectionMetrics: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_ReturnItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchWriteItemInput).Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemOutputTransformInput_sdkOutput_FromDafny(input interface{}) dynamodb.BatchWriteItemOutput {
+	return dynamodb.BatchWriteItemOutput{UnprocessedItems: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemOutput_UnprocessedItems_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchWriteItemOutput).Dtor_UnprocessedItems().UnwrapOr(nil)),
+		ItemCollectionMetrics: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemOutput_ItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchWriteItemOutput).Dtor_ItemCollectionMetrics().UnwrapOr(nil)),
+		ConsumedCapacity:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchWriteItemOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemOutputTransformInput_originalInput_FromDafny(input interface{}) dynamodb.BatchWriteItemInput {
+	return dynamodb.BatchWriteItemInput{RequestItems: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_RequestItems_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchWriteItemInput).Dtor_RequestItems()),
+		ReturnConsumedCapacity:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchWriteItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ReturnItemCollectionMetrics: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_ReturnItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchWriteItemInput).Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemOutputTransformOutput_transformedOutput_FromDafny(input interface{}) dynamodb.BatchWriteItemOutput {
+	return dynamodb.BatchWriteItemOutput{UnprocessedItems: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemOutput_UnprocessedItems_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchWriteItemOutput).Dtor_UnprocessedItems().UnwrapOr(nil)),
+		ItemCollectionMetrics: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemOutput_ItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchWriteItemOutput).Dtor_ItemCollectionMetrics().UnwrapOr(nil)),
+		ConsumedCapacity:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchWriteItemOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemInputTransformInput_sdkInput_FromDafny(input interface{}) dynamodb.DeleteItemInput {
+	return dynamodb.DeleteItemInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_TableName()),
+		Key:                                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_Key_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_Key()),
+		Expected:                            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_Expected_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_Expected().UnwrapOr(nil)),
+		ConditionalOperator:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ConditionalOperator_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ConditionalOperator().UnwrapOr(nil)),
+		ReturnValues:                        comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnValues_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ReturnValues().UnwrapOr(nil)),
+		ReturnConsumedCapacity:              comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ReturnItemCollectionMetrics:         comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)),
+		ConditionExpression:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ConditionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ConditionExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+		ExpressionAttributeValues:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ExpressionAttributeValues_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ExpressionAttributeValues().UnwrapOr(nil)),
+		ReturnValuesOnConditionCheckFailure: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnValuesOnConditionCheckFailure_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ReturnValuesOnConditionCheckFailure().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemInputTransformOutput_transformedInput_FromDafny(input interface{}) dynamodb.DeleteItemInput {
+	return dynamodb.DeleteItemInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_TableName()),
+		Key:                                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_Key_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_Key()),
+		Expected:                            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_Expected_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_Expected().UnwrapOr(nil)),
+		ConditionalOperator:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ConditionalOperator_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ConditionalOperator().UnwrapOr(nil)),
+		ReturnValues:                        comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnValues_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ReturnValues().UnwrapOr(nil)),
+		ReturnConsumedCapacity:              comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ReturnItemCollectionMetrics:         comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)),
+		ConditionExpression:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ConditionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ConditionExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+		ExpressionAttributeValues:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ExpressionAttributeValues_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ExpressionAttributeValues().UnwrapOr(nil)),
+		ReturnValuesOnConditionCheckFailure: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnValuesOnConditionCheckFailure_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ReturnValuesOnConditionCheckFailure().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemOutputTransformInput_sdkOutput_FromDafny(input interface{}) dynamodb.DeleteItemOutput {
+	return dynamodb.DeleteItemOutput{Attributes: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemOutput_Attributes_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemOutput).Dtor_Attributes().UnwrapOr(nil)),
+		ConsumedCapacity:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+		ItemCollectionMetrics: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemOutput_ItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemOutput).Dtor_ItemCollectionMetrics().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemOutputTransformInput_originalInput_FromDafny(input interface{}) dynamodb.DeleteItemInput {
+	return dynamodb.DeleteItemInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_TableName()),
+		Key:                                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_Key_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_Key()),
+		Expected:                            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_Expected_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_Expected().UnwrapOr(nil)),
+		ConditionalOperator:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ConditionalOperator_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ConditionalOperator().UnwrapOr(nil)),
+		ReturnValues:                        comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnValues_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ReturnValues().UnwrapOr(nil)),
+		ReturnConsumedCapacity:              comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ReturnItemCollectionMetrics:         comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)),
+		ConditionExpression:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ConditionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ConditionExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+		ExpressionAttributeValues:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ExpressionAttributeValues_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ExpressionAttributeValues().UnwrapOr(nil)),
+		ReturnValuesOnConditionCheckFailure: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnValuesOnConditionCheckFailure_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ReturnValuesOnConditionCheckFailure().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemOutputTransformOutput_transformedOutput_FromDafny(input interface{}) dynamodb.DeleteItemOutput {
+	return dynamodb.DeleteItemOutput{Attributes: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemOutput_Attributes_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemOutput).Dtor_Attributes().UnwrapOr(nil)),
+		ConsumedCapacity:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+		ItemCollectionMetrics: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemOutput_ItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemOutput).Dtor_ItemCollectionMetrics().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementInputTransformInput_sdkInput_FromDafny(input interface{}) dynamodb.ExecuteStatementInput {
+	return dynamodb.ExecuteStatementInput{Statement: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Statement_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_Statement()),
+		Parameters:                          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Parameters_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_Parameters().UnwrapOr(nil)),
+		ConsistentRead:                      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ConsistentRead_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_ConsistentRead().UnwrapOr(nil)),
+		NextToken:                           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_NextToken_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_NextToken().UnwrapOr(nil)),
+		ReturnConsumedCapacity:              comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		Limit:                               comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Limit_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_Limit().UnwrapOr(nil)),
+		ReturnValuesOnConditionCheckFailure: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ReturnValuesOnConditionCheckFailure_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_ReturnValuesOnConditionCheckFailure().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementInputTransformOutput_transformedInput_FromDafny(input interface{}) dynamodb.ExecuteStatementInput {
+	return dynamodb.ExecuteStatementInput{Statement: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Statement_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_Statement()),
+		Parameters:                          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Parameters_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_Parameters().UnwrapOr(nil)),
+		ConsistentRead:                      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ConsistentRead_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_ConsistentRead().UnwrapOr(nil)),
+		NextToken:                           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_NextToken_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_NextToken().UnwrapOr(nil)),
+		ReturnConsumedCapacity:              comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		Limit:                               comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Limit_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_Limit().UnwrapOr(nil)),
+		ReturnValuesOnConditionCheckFailure: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ReturnValuesOnConditionCheckFailure_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_ReturnValuesOnConditionCheckFailure().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementOutputTransformInput_sdkOutput_FromDafny(input interface{}) dynamodb.ExecuteStatementOutput {
+	return dynamodb.ExecuteStatementOutput{Items: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementOutput_Items_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementOutput).Dtor_Items().UnwrapOr(nil)),
+		NextToken:        comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementOutput_NextToken_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementOutput).Dtor_NextToken().UnwrapOr(nil)),
+		ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+		LastEvaluatedKey: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementOutput_LastEvaluatedKey_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementOutput).Dtor_LastEvaluatedKey().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementOutputTransformInput_originalInput_FromDafny(input interface{}) dynamodb.ExecuteStatementInput {
+	return dynamodb.ExecuteStatementInput{Statement: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Statement_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_Statement()),
+		Parameters:                          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Parameters_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_Parameters().UnwrapOr(nil)),
+		ConsistentRead:                      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ConsistentRead_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_ConsistentRead().UnwrapOr(nil)),
+		NextToken:                           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_NextToken_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_NextToken().UnwrapOr(nil)),
+		ReturnConsumedCapacity:              comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		Limit:                               comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Limit_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_Limit().UnwrapOr(nil)),
+		ReturnValuesOnConditionCheckFailure: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ReturnValuesOnConditionCheckFailure_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_ReturnValuesOnConditionCheckFailure().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementOutputTransformOutput_transformedOutput_FromDafny(input interface{}) dynamodb.ExecuteStatementOutput {
+	return dynamodb.ExecuteStatementOutput{Items: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementOutput_Items_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementOutput).Dtor_Items().UnwrapOr(nil)),
+		NextToken:        comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementOutput_NextToken_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementOutput).Dtor_NextToken().UnwrapOr(nil)),
+		ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+		LastEvaluatedKey: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementOutput_LastEvaluatedKey_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementOutput).Dtor_LastEvaluatedKey().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionInputTransformInput_sdkInput_FromDafny(input interface{}) dynamodb.ExecuteTransactionInput {
+	return dynamodb.ExecuteTransactionInput{TransactStatements: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_TransactStatements_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteTransactionInput).Dtor_TransactStatements()),
+		ClientRequestToken:     comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_ClientRequestToken_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteTransactionInput).Dtor_ClientRequestToken().UnwrapOr(nil)),
+		ReturnConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteTransactionInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionInputTransformOutput_transformedInput_FromDafny(input interface{}) dynamodb.ExecuteTransactionInput {
+	return dynamodb.ExecuteTransactionInput{TransactStatements: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_TransactStatements_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteTransactionInput).Dtor_TransactStatements()),
+		ClientRequestToken:     comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_ClientRequestToken_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteTransactionInput).Dtor_ClientRequestToken().UnwrapOr(nil)),
+		ReturnConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteTransactionInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionOutputTransformInput_sdkOutput_FromDafny(input interface{}) dynamodb.ExecuteTransactionOutput {
+	return dynamodb.ExecuteTransactionOutput{Responses: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionOutput_Responses_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteTransactionOutput).Dtor_Responses().UnwrapOr(nil)),
+		ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteTransactionOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionOutputTransformInput_originalInput_FromDafny(input interface{}) dynamodb.ExecuteTransactionInput {
+	return dynamodb.ExecuteTransactionInput{TransactStatements: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_TransactStatements_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteTransactionInput).Dtor_TransactStatements()),
+		ClientRequestToken:     comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_ClientRequestToken_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteTransactionInput).Dtor_ClientRequestToken().UnwrapOr(nil)),
+		ReturnConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteTransactionInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionOutputTransformOutput_transformedOutput_FromDafny(input interface{}) dynamodb.ExecuteTransactionOutput {
+	return dynamodb.ExecuteTransactionOutput{Responses: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionOutput_Responses_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteTransactionOutput).Dtor_Responses().UnwrapOr(nil)),
+		ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteTransactionOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemInputTransformInput_sdkInput_FromDafny(input interface{}) dynamodb.GetItemInput {
+	return dynamodb.GetItemInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_TableName()),
+		Key:                      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_Key_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_Key()),
+		AttributesToGet:          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_AttributesToGet_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_AttributesToGet().UnwrapOr(nil)),
+		ConsistentRead:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ConsistentRead_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_ConsistentRead().UnwrapOr(nil)),
+		ReturnConsumedCapacity:   comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ProjectionExpression:     comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ProjectionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_ProjectionExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemInputTransformOutput_transformedInput_FromDafny(input interface{}) dynamodb.GetItemInput {
+	return dynamodb.GetItemInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_TableName()),
+		Key:                      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_Key_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_Key()),
+		AttributesToGet:          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_AttributesToGet_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_AttributesToGet().UnwrapOr(nil)),
+		ConsistentRead:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ConsistentRead_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_ConsistentRead().UnwrapOr(nil)),
+		ReturnConsumedCapacity:   comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ProjectionExpression:     comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ProjectionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_ProjectionExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemOutputTransformInput_sdkOutput_FromDafny(input interface{}) dynamodb.GetItemOutput {
+	return dynamodb.GetItemOutput{Item: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemOutput_Item_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemOutput).Dtor_Item().UnwrapOr(nil)),
+		ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemOutputTransformInput_originalInput_FromDafny(input interface{}) dynamodb.GetItemInput {
+	return dynamodb.GetItemInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_TableName()),
+		Key:                      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_Key_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_Key()),
+		AttributesToGet:          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_AttributesToGet_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_AttributesToGet().UnwrapOr(nil)),
+		ConsistentRead:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ConsistentRead_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_ConsistentRead().UnwrapOr(nil)),
+		ReturnConsumedCapacity:   comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ProjectionExpression:     comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ProjectionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_ProjectionExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemOutputTransformOutput_transformedOutput_FromDafny(input interface{}) dynamodb.GetItemOutput {
+	return dynamodb.GetItemOutput{Item: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemOutput_Item_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemOutput).Dtor_Item().UnwrapOr(nil)),
+		ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemInputTransformInput_sdkInput_FromDafny(input interface{}) dynamodb.PutItemInput {
+	return dynamodb.PutItemInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_TableName()),
+		Item:                                comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_Item_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_Item()),
+		Expected:                            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_Expected_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_Expected().UnwrapOr(nil)),
+		ReturnValues:                        comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnValues_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ReturnValues().UnwrapOr(nil)),
+		ReturnConsumedCapacity:              comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ReturnItemCollectionMetrics:         comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)),
+		ConditionalOperator:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ConditionalOperator_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ConditionalOperator().UnwrapOr(nil)),
+		ConditionExpression:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ConditionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ConditionExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+		ExpressionAttributeValues:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ExpressionAttributeValues_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ExpressionAttributeValues().UnwrapOr(nil)),
+		ReturnValuesOnConditionCheckFailure: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnValuesOnConditionCheckFailure_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ReturnValuesOnConditionCheckFailure().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemInputTransformOutput_transformedInput_FromDafny(input interface{}) dynamodb.PutItemInput {
+	return dynamodb.PutItemInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_TableName()),
+		Item:                                comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_Item_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_Item()),
+		Expected:                            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_Expected_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_Expected().UnwrapOr(nil)),
+		ReturnValues:                        comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnValues_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ReturnValues().UnwrapOr(nil)),
+		ReturnConsumedCapacity:              comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ReturnItemCollectionMetrics:         comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)),
+		ConditionalOperator:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ConditionalOperator_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ConditionalOperator().UnwrapOr(nil)),
+		ConditionExpression:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ConditionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ConditionExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+		ExpressionAttributeValues:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ExpressionAttributeValues_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ExpressionAttributeValues().UnwrapOr(nil)),
+		ReturnValuesOnConditionCheckFailure: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnValuesOnConditionCheckFailure_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ReturnValuesOnConditionCheckFailure().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemOutputTransformInput_sdkOutput_FromDafny(input interface{}) dynamodb.PutItemOutput {
+	return dynamodb.PutItemOutput{Attributes: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemOutput_Attributes_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemOutput).Dtor_Attributes().UnwrapOr(nil)),
+		ConsumedCapacity:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+		ItemCollectionMetrics: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemOutput_ItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemOutput).Dtor_ItemCollectionMetrics().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemOutputTransformInput_originalInput_FromDafny(input interface{}) dynamodb.PutItemInput {
+	return dynamodb.PutItemInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_TableName()),
+		Item:                                comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_Item_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_Item()),
+		Expected:                            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_Expected_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_Expected().UnwrapOr(nil)),
+		ReturnValues:                        comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnValues_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ReturnValues().UnwrapOr(nil)),
+		ReturnConsumedCapacity:              comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ReturnItemCollectionMetrics:         comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)),
+		ConditionalOperator:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ConditionalOperator_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ConditionalOperator().UnwrapOr(nil)),
+		ConditionExpression:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ConditionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ConditionExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+		ExpressionAttributeValues:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ExpressionAttributeValues_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ExpressionAttributeValues().UnwrapOr(nil)),
+		ReturnValuesOnConditionCheckFailure: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnValuesOnConditionCheckFailure_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ReturnValuesOnConditionCheckFailure().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemOutputTransformOutput_transformedOutput_FromDafny(input interface{}) dynamodb.PutItemOutput {
+	return dynamodb.PutItemOutput{Attributes: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemOutput_Attributes_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemOutput).Dtor_Attributes().UnwrapOr(nil)),
+		ConsumedCapacity:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+		ItemCollectionMetrics: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemOutput_ItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemOutput).Dtor_ItemCollectionMetrics().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryInputTransformInput_sdkInput_FromDafny(input interface{}) dynamodb.QueryInput {
+	return dynamodb.QueryInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_TableName()),
+		IndexName:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_IndexName_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_IndexName().UnwrapOr(nil)),
+		Select:                    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_Select_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_Select().UnwrapOr(nil)),
+		AttributesToGet:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_AttributesToGet_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_AttributesToGet().UnwrapOr(nil)),
+		Limit:                     comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_Limit_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_Limit().UnwrapOr(nil)),
+		ConsistentRead:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ConsistentRead_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ConsistentRead().UnwrapOr(nil)),
+		KeyConditions:             comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_KeyConditions_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_KeyConditions().UnwrapOr(nil)),
+		QueryFilter:               comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_QueryFilter_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_QueryFilter().UnwrapOr(nil)),
+		ConditionalOperator:       comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ConditionalOperator_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ConditionalOperator().UnwrapOr(nil)),
+		ScanIndexForward:          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ScanIndexForward_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ScanIndexForward().UnwrapOr(nil)),
+		ExclusiveStartKey:         comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExclusiveStartKey_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ExclusiveStartKey().UnwrapOr(nil)),
+		ReturnConsumedCapacity:    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ProjectionExpression:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ProjectionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ProjectionExpression().UnwrapOr(nil)),
+		FilterExpression:          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_FilterExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_FilterExpression().UnwrapOr(nil)),
+		KeyConditionExpression:    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_KeyConditionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_KeyConditionExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames:  comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+		ExpressionAttributeValues: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExpressionAttributeValues_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ExpressionAttributeValues().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryInputTransformOutput_transformedInput_FromDafny(input interface{}) dynamodb.QueryInput {
+	return dynamodb.QueryInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_TableName()),
+		IndexName:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_IndexName_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_IndexName().UnwrapOr(nil)),
+		Select:                    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_Select_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_Select().UnwrapOr(nil)),
+		AttributesToGet:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_AttributesToGet_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_AttributesToGet().UnwrapOr(nil)),
+		Limit:                     comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_Limit_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_Limit().UnwrapOr(nil)),
+		ConsistentRead:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ConsistentRead_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ConsistentRead().UnwrapOr(nil)),
+		KeyConditions:             comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_KeyConditions_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_KeyConditions().UnwrapOr(nil)),
+		QueryFilter:               comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_QueryFilter_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_QueryFilter().UnwrapOr(nil)),
+		ConditionalOperator:       comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ConditionalOperator_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ConditionalOperator().UnwrapOr(nil)),
+		ScanIndexForward:          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ScanIndexForward_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ScanIndexForward().UnwrapOr(nil)),
+		ExclusiveStartKey:         comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExclusiveStartKey_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ExclusiveStartKey().UnwrapOr(nil)),
+		ReturnConsumedCapacity:    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ProjectionExpression:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ProjectionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ProjectionExpression().UnwrapOr(nil)),
+		FilterExpression:          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_FilterExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_FilterExpression().UnwrapOr(nil)),
+		KeyConditionExpression:    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_KeyConditionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_KeyConditionExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames:  comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+		ExpressionAttributeValues: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExpressionAttributeValues_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ExpressionAttributeValues().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryOutputTransformInput_sdkOutput_FromDafny(input interface{}) dynamodb.QueryOutput {
+	return dynamodb.QueryOutput{Items: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_Items_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryOutput).Dtor_Items().UnwrapOr(nil)),
+		Count:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_Count_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryOutput).Dtor_Count().UnwrapOr(nil)),
+		ScannedCount:     comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_ScannedCount_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryOutput).Dtor_ScannedCount().UnwrapOr(nil)),
+		LastEvaluatedKey: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_LastEvaluatedKey_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryOutput).Dtor_LastEvaluatedKey().UnwrapOr(nil)),
+		ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryOutputTransformInput_originalInput_FromDafny(input interface{}) dynamodb.QueryInput {
+	return dynamodb.QueryInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_TableName()),
+		IndexName:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_IndexName_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_IndexName().UnwrapOr(nil)),
+		Select:                    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_Select_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_Select().UnwrapOr(nil)),
+		AttributesToGet:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_AttributesToGet_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_AttributesToGet().UnwrapOr(nil)),
+		Limit:                     comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_Limit_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_Limit().UnwrapOr(nil)),
+		ConsistentRead:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ConsistentRead_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ConsistentRead().UnwrapOr(nil)),
+		KeyConditions:             comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_KeyConditions_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_KeyConditions().UnwrapOr(nil)),
+		QueryFilter:               comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_QueryFilter_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_QueryFilter().UnwrapOr(nil)),
+		ConditionalOperator:       comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ConditionalOperator_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ConditionalOperator().UnwrapOr(nil)),
+		ScanIndexForward:          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ScanIndexForward_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ScanIndexForward().UnwrapOr(nil)),
+		ExclusiveStartKey:         comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExclusiveStartKey_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ExclusiveStartKey().UnwrapOr(nil)),
+		ReturnConsumedCapacity:    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ProjectionExpression:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ProjectionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ProjectionExpression().UnwrapOr(nil)),
+		FilterExpression:          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_FilterExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_FilterExpression().UnwrapOr(nil)),
+		KeyConditionExpression:    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_KeyConditionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_KeyConditionExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames:  comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+		ExpressionAttributeValues: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExpressionAttributeValues_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ExpressionAttributeValues().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryOutputTransformOutput_transformedOutput_FromDafny(input interface{}) dynamodb.QueryOutput {
+	return dynamodb.QueryOutput{Items: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_Items_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryOutput).Dtor_Items().UnwrapOr(nil)),
+		Count:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_Count_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryOutput).Dtor_Count().UnwrapOr(nil)),
+		ScannedCount:     comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_ScannedCount_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryOutput).Dtor_ScannedCount().UnwrapOr(nil)),
+		LastEvaluatedKey: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_LastEvaluatedKey_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryOutput).Dtor_LastEvaluatedKey().UnwrapOr(nil)),
+		ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesInput_TableName_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesInput_Item_FromDafny(input interface{}) map[string]dynamodbtypes.AttributeValue {
+	var m map[string]dynamodbtypes.AttributeValue = make(map[string]dynamodbtypes.AttributeValue)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesInput_Version_FromDafny(input interface{}) *int32 {
+	return func() *int32 {
+		var b int32
+		if input == nil {
+			return nil
+		}
+		b = input.(int32)
+		return &b
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesOutput_VirtualFields_FromDafny(input interface{}) map[string]string {
+	var m map[string]string = make(map[string]string)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_StringMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_StringMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_StringMap_key_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_StringMap_value_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesOutput_CompoundBeacons_FromDafny(input interface{}) map[string]string {
+	var m map[string]string = make(map[string]string)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_StringMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_StringMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanInputTransformInput_sdkInput_FromDafny(input interface{}) dynamodb.ScanInput {
+	return dynamodb.ScanInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_TableName()),
+		IndexName:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_IndexName_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_IndexName().UnwrapOr(nil)),
+		AttributesToGet:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_AttributesToGet_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_AttributesToGet().UnwrapOr(nil)),
+		Limit:                     comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Limit_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_Limit().UnwrapOr(nil)),
+		Select:                    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Select_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_Select().UnwrapOr(nil)),
+		ScanFilter:                comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ScanFilter_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ScanFilter().UnwrapOr(nil)),
+		ConditionalOperator:       comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ConditionalOperator_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ConditionalOperator().UnwrapOr(nil)),
+		ExclusiveStartKey:         comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExclusiveStartKey_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ExclusiveStartKey().UnwrapOr(nil)),
+		ReturnConsumedCapacity:    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		TotalSegments:             comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_TotalSegments_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_TotalSegments().UnwrapOr(nil)),
+		Segment:                   comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Segment_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_Segment().UnwrapOr(nil)),
+		ProjectionExpression:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ProjectionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ProjectionExpression().UnwrapOr(nil)),
+		FilterExpression:          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_FilterExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_FilterExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames:  comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+		ExpressionAttributeValues: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExpressionAttributeValues_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ExpressionAttributeValues().UnwrapOr(nil)),
+		ConsistentRead:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ConsistentRead_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ConsistentRead().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanInputTransformOutput_transformedInput_FromDafny(input interface{}) dynamodb.ScanInput {
+	return dynamodb.ScanInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_TableName()),
+		IndexName:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_IndexName_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_IndexName().UnwrapOr(nil)),
+		AttributesToGet:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_AttributesToGet_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_AttributesToGet().UnwrapOr(nil)),
+		Limit:                     comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Limit_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_Limit().UnwrapOr(nil)),
+		Select:                    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Select_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_Select().UnwrapOr(nil)),
+		ScanFilter:                comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ScanFilter_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ScanFilter().UnwrapOr(nil)),
+		ConditionalOperator:       comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ConditionalOperator_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ConditionalOperator().UnwrapOr(nil)),
+		ExclusiveStartKey:         comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExclusiveStartKey_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ExclusiveStartKey().UnwrapOr(nil)),
+		ReturnConsumedCapacity:    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		TotalSegments:             comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_TotalSegments_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_TotalSegments().UnwrapOr(nil)),
+		Segment:                   comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Segment_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_Segment().UnwrapOr(nil)),
+		ProjectionExpression:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ProjectionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ProjectionExpression().UnwrapOr(nil)),
+		FilterExpression:          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_FilterExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_FilterExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames:  comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+		ExpressionAttributeValues: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExpressionAttributeValues_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ExpressionAttributeValues().UnwrapOr(nil)),
+		ConsistentRead:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ConsistentRead_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ConsistentRead().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanOutputTransformInput_sdkOutput_FromDafny(input interface{}) dynamodb.ScanOutput {
+	return dynamodb.ScanOutput{Items: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_Items_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanOutput).Dtor_Items().UnwrapOr(nil)),
+		Count:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_Count_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanOutput).Dtor_Count().UnwrapOr(nil)),
+		ScannedCount:     comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_ScannedCount_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanOutput).Dtor_ScannedCount().UnwrapOr(nil)),
+		LastEvaluatedKey: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_LastEvaluatedKey_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanOutput).Dtor_LastEvaluatedKey().UnwrapOr(nil)),
+		ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanOutputTransformInput_originalInput_FromDafny(input interface{}) dynamodb.ScanInput {
+	return dynamodb.ScanInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_TableName()),
+		IndexName:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_IndexName_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_IndexName().UnwrapOr(nil)),
+		AttributesToGet:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_AttributesToGet_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_AttributesToGet().UnwrapOr(nil)),
+		Limit:                     comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Limit_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_Limit().UnwrapOr(nil)),
+		Select:                    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Select_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_Select().UnwrapOr(nil)),
+		ScanFilter:                comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ScanFilter_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ScanFilter().UnwrapOr(nil)),
+		ConditionalOperator:       comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ConditionalOperator_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ConditionalOperator().UnwrapOr(nil)),
+		ExclusiveStartKey:         comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExclusiveStartKey_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ExclusiveStartKey().UnwrapOr(nil)),
+		ReturnConsumedCapacity:    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		TotalSegments:             comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_TotalSegments_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_TotalSegments().UnwrapOr(nil)),
+		Segment:                   comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Segment_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_Segment().UnwrapOr(nil)),
+		ProjectionExpression:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ProjectionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ProjectionExpression().UnwrapOr(nil)),
+		FilterExpression:          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_FilterExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_FilterExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames:  comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+		ExpressionAttributeValues: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExpressionAttributeValues_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ExpressionAttributeValues().UnwrapOr(nil)),
+		ConsistentRead:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ConsistentRead_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ConsistentRead().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanOutputTransformOutput_transformedOutput_FromDafny(input interface{}) dynamodb.ScanOutput {
+	return dynamodb.ScanOutput{Items: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_Items_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanOutput).Dtor_Items().UnwrapOr(nil)),
+		Count:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_Count_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanOutput).Dtor_Count().UnwrapOr(nil)),
+		ScannedCount:     comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_ScannedCount_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanOutput).Dtor_ScannedCount().UnwrapOr(nil)),
+		LastEvaluatedKey: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_LastEvaluatedKey_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanOutput).Dtor_LastEvaluatedKey().UnwrapOr(nil)),
+		ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsInputTransformInput_sdkInput_FromDafny(input interface{}) dynamodb.TransactGetItemsInput {
+	return dynamodb.TransactGetItemsInput{TransactItems: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsInput_TransactItems_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactGetItemsInput).Dtor_TransactItems()),
+		ReturnConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactGetItemsInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsInputTransformOutput_transformedInput_FromDafny(input interface{}) dynamodb.TransactGetItemsInput {
+	return dynamodb.TransactGetItemsInput{TransactItems: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsInput_TransactItems_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactGetItemsInput).Dtor_TransactItems()),
+		ReturnConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactGetItemsInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsOutputTransformInput_sdkOutput_FromDafny(input interface{}) dynamodb.TransactGetItemsOutput {
+	return dynamodb.TransactGetItemsOutput{ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactGetItemsOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+		Responses: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsOutput_Responses_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactGetItemsOutput).Dtor_Responses().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsOutputTransformInput_originalInput_FromDafny(input interface{}) dynamodb.TransactGetItemsInput {
+	return dynamodb.TransactGetItemsInput{TransactItems: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsInput_TransactItems_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactGetItemsInput).Dtor_TransactItems()),
+		ReturnConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactGetItemsInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsOutputTransformOutput_transformedOutput_FromDafny(input interface{}) dynamodb.TransactGetItemsOutput {
+	return dynamodb.TransactGetItemsOutput{ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactGetItemsOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+		Responses: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsOutput_Responses_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactGetItemsOutput).Dtor_Responses().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsInputTransformInput_sdkInput_FromDafny(input interface{}) dynamodb.TransactWriteItemsInput {
+	return dynamodb.TransactWriteItemsInput{TransactItems: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_TransactItems_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItemsInput).Dtor_TransactItems()),
+		ReturnConsumedCapacity:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItemsInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ReturnItemCollectionMetrics: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ReturnItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItemsInput).Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)),
+		ClientRequestToken:          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ClientRequestToken_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItemsInput).Dtor_ClientRequestToken().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsInputTransformOutput_transformedInput_FromDafny(input interface{}) dynamodb.TransactWriteItemsInput {
+	return dynamodb.TransactWriteItemsInput{TransactItems: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_TransactItems_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItemsInput).Dtor_TransactItems()),
+		ReturnConsumedCapacity:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItemsInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ReturnItemCollectionMetrics: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ReturnItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItemsInput).Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)),
+		ClientRequestToken:          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ClientRequestToken_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItemsInput).Dtor_ClientRequestToken().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsOutputTransformInput_sdkOutput_FromDafny(input interface{}) dynamodb.TransactWriteItemsOutput {
+	return dynamodb.TransactWriteItemsOutput{ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItemsOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+		ItemCollectionMetrics: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsOutput_ItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItemsOutput).Dtor_ItemCollectionMetrics().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsOutputTransformInput_originalInput_FromDafny(input interface{}) dynamodb.TransactWriteItemsInput {
+	return dynamodb.TransactWriteItemsInput{TransactItems: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_TransactItems_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItemsInput).Dtor_TransactItems()),
+		ReturnConsumedCapacity:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItemsInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ReturnItemCollectionMetrics: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ReturnItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItemsInput).Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)),
+		ClientRequestToken:          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ClientRequestToken_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItemsInput).Dtor_ClientRequestToken().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsOutputTransformOutput_transformedOutput_FromDafny(input interface{}) dynamodb.TransactWriteItemsOutput {
+	return dynamodb.TransactWriteItemsOutput{ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItemsOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+		ItemCollectionMetrics: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsOutput_ItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItemsOutput).Dtor_ItemCollectionMetrics().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemInputTransformInput_sdkInput_FromDafny(input interface{}) dynamodb.UpdateItemInput {
+	return dynamodb.UpdateItemInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_TableName()),
+		Key:                                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_Key_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_Key()),
+		AttributeUpdates:                    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_AttributeUpdates_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_AttributeUpdates().UnwrapOr(nil)),
+		Expected:                            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_Expected_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_Expected().UnwrapOr(nil)),
+		ConditionalOperator:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ConditionalOperator_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ConditionalOperator().UnwrapOr(nil)),
+		ReturnValues:                        comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnValues_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ReturnValues().UnwrapOr(nil)),
+		ReturnConsumedCapacity:              comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ReturnItemCollectionMetrics:         comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)),
+		UpdateExpression:                    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_UpdateExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_UpdateExpression().UnwrapOr(nil)),
+		ConditionExpression:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ConditionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ConditionExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+		ExpressionAttributeValues:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ExpressionAttributeValues_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ExpressionAttributeValues().UnwrapOr(nil)),
+		ReturnValuesOnConditionCheckFailure: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnValuesOnConditionCheckFailure_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ReturnValuesOnConditionCheckFailure().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemInputTransformOutput_transformedInput_FromDafny(input interface{}) dynamodb.UpdateItemInput {
+	return dynamodb.UpdateItemInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_TableName()),
+		Key:                                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_Key_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_Key()),
+		AttributeUpdates:                    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_AttributeUpdates_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_AttributeUpdates().UnwrapOr(nil)),
+		Expected:                            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_Expected_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_Expected().UnwrapOr(nil)),
+		ConditionalOperator:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ConditionalOperator_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ConditionalOperator().UnwrapOr(nil)),
+		ReturnValues:                        comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnValues_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ReturnValues().UnwrapOr(nil)),
+		ReturnConsumedCapacity:              comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ReturnItemCollectionMetrics:         comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)),
+		UpdateExpression:                    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_UpdateExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_UpdateExpression().UnwrapOr(nil)),
+		ConditionExpression:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ConditionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ConditionExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+		ExpressionAttributeValues:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ExpressionAttributeValues_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ExpressionAttributeValues().UnwrapOr(nil)),
+		ReturnValuesOnConditionCheckFailure: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnValuesOnConditionCheckFailure_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ReturnValuesOnConditionCheckFailure().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemOutputTransformInput_sdkOutput_FromDafny(input interface{}) dynamodb.UpdateItemOutput {
+	return dynamodb.UpdateItemOutput{Attributes: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemOutput_Attributes_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemOutput).Dtor_Attributes().UnwrapOr(nil)),
+		ConsumedCapacity:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+		ItemCollectionMetrics: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemOutput_ItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemOutput).Dtor_ItemCollectionMetrics().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemOutputTransformInput_originalInput_FromDafny(input interface{}) dynamodb.UpdateItemInput {
+	return dynamodb.UpdateItemInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_TableName()),
+		Key:                                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_Key_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_Key()),
+		AttributeUpdates:                    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_AttributeUpdates_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_AttributeUpdates().UnwrapOr(nil)),
+		Expected:                            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_Expected_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_Expected().UnwrapOr(nil)),
+		ConditionalOperator:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ConditionalOperator_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ConditionalOperator().UnwrapOr(nil)),
+		ReturnValues:                        comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnValues_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ReturnValues().UnwrapOr(nil)),
+		ReturnConsumedCapacity:              comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ReturnItemCollectionMetrics:         comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)),
+		UpdateExpression:                    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_UpdateExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_UpdateExpression().UnwrapOr(nil)),
+		ConditionExpression:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ConditionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ConditionExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+		ExpressionAttributeValues:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ExpressionAttributeValues_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ExpressionAttributeValues().UnwrapOr(nil)),
+		ReturnValuesOnConditionCheckFailure: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnValuesOnConditionCheckFailure_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ReturnValuesOnConditionCheckFailure().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemOutputTransformOutput_transformedOutput_FromDafny(input interface{}) dynamodb.UpdateItemOutput {
+	return dynamodb.UpdateItemOutput{Attributes: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemOutput_Attributes_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemOutput).Dtor_Attributes().UnwrapOr(nil)),
+		ConsumedCapacity:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+		ItemCollectionMetrics: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemOutput_ItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemOutput).Dtor_ItemCollectionMetrics().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DynamoDbEncryptionTransformsException_message_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes/errors.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes/errors.go
new file mode 100644
index 000000000..c827f8620
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes/errors.go
@@ -0,0 +1,17 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes
+
+import (
+	"fmt"
+)
+
+type DynamoDbEncryptionTransformsException struct {
+	DynamoDbEncryptionTransformsBaseException
+	Message           string
+	ErrorCodeOverride *string
+}
+
+func (e DynamoDbEncryptionTransformsException) Error() string {
+	return fmt.Sprintf("%s: %s", e.ErrorCodeOverride, e.Message)
+}
diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes/types.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes/types.go
new file mode 100644
index 000000000..55c7f111b
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes/types.go
@@ -0,0 +1,702 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes
+
+import (
+	"fmt"
+
+	"github.com/aws/aws-sdk-go-v2/service/dynamodb"
+	dynamodbtypes "github.com/aws/aws-sdk-go-v2/service/dynamodb/types"
+)
+
+type ResolveAttributesOutput struct {
+	CompoundBeacons map[string]string
+
+	VirtualFields map[string]string
+}
+
+func (input ResolveAttributesOutput) Validate() error {
+	if input.CompoundBeacons == nil {
+		return fmt.Errorf("input.CompoundBeacons is required but has a nil value.")
+	}
+	if input.VirtualFields == nil {
+		return fmt.Errorf("input.VirtualFields is required but has a nil value.")
+	}
+
+	return nil
+}
+
+type ResolveAttributesInput struct {
+	Item map[string]dynamodbtypes.AttributeValue
+
+	TableName string
+
+	Version *int32
+}
+
+func (input ResolveAttributesInput) Validate() error {
+	if input.Item == nil {
+		return fmt.Errorf("input.Item is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesInput_Item_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesInput_Item_Validate()
+	}
+	if len(input.TableName) < 3 {
+		return fmt.Errorf("TableName has a minimum length of 3 but has the length of %d.", len(input.TableName))
+	}
+	if len(input.TableName) > 255 {
+		return fmt.Errorf("TableName has a maximum length of 255 but has the length of %d.", len(input.TableName))
+	}
+	if input.Version != nil {
+		if *input.Version < 1 {
+			return fmt.Errorf("VersionNumber has a minimum of 1 but has the value of %d.", *input.Version)
+		}
+	}
+
+	return nil
+}
+
+func (input ResolveAttributesInput) Com_amazonaws_dynamodb_AttributeMap_value_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+	case *dynamodbtypes.AttributeValueMemberL:
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input ResolveAttributesInput) Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+		if input.Com_amazonaws_dynamodb_AttributeValue_M_Validate(unionType.Value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeValue_M_Validate(unionType.Value)
+		}
+	case *dynamodbtypes.AttributeValueMemberL:
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input ResolveAttributesInput) Com_amazonaws_dynamodb_AttributeValue_M_Validate(Value map[string]dynamodbtypes.AttributeValue) error {
+	for key, value := range Value {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+		if input.Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(value) != nil {
+			return input.Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(value)
+		}
+	}
+
+	return nil
+}
+func (input ResolveAttributesInput) Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+	case *dynamodbtypes.AttributeValueMemberL:
+		if input.Com_amazonaws_dynamodb_AttributeValue_L_Validate(unionType.Value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeValue_L_Validate(unionType.Value)
+		}
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input ResolveAttributesInput) Com_amazonaws_dynamodb_AttributeValue_L_Validate(Value []dynamodbtypes.AttributeValue) error {
+	for _, item := range Value {
+		if input.Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(item) != nil {
+			return input.Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(item)
+		}
+	}
+
+	return nil
+}
+func (input ResolveAttributesInput) Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesInput_Item_Validate() error {
+	for key, value := range input.Item {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+		if input.Com_amazonaws_dynamodb_AttributeMap_value_Validate(value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeMap_value_Validate(value)
+		}
+	}
+
+	return nil
+}
+
+type ExecuteStatementInputTransformInput struct {
+	SdkInput dynamodb.ExecuteStatementInput
+}
+
+func (input ExecuteStatementInputTransformInput) Validate() error {
+
+	return nil
+}
+
+type ExecuteStatementInputTransformOutput struct {
+	TransformedInput dynamodb.ExecuteStatementInput
+}
+
+func (input ExecuteStatementInputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type GetItemInputTransformInput struct {
+	SdkInput dynamodb.GetItemInput
+}
+
+func (input GetItemInputTransformInput) Validate() error {
+
+	return nil
+}
+
+type GetItemInputTransformOutput struct {
+	TransformedInput dynamodb.GetItemInput
+}
+
+func (input GetItemInputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type GetItemOutputTransformOutput struct {
+	TransformedOutput dynamodb.GetItemOutput
+}
+
+func (input GetItemOutputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type BatchExecuteStatementInputTransformInput struct {
+	SdkInput dynamodb.BatchExecuteStatementInput
+}
+
+func (input BatchExecuteStatementInputTransformInput) Validate() error {
+
+	return nil
+}
+
+type BatchExecuteStatementInputTransformOutput struct {
+	TransformedInput dynamodb.BatchExecuteStatementInput
+}
+
+func (input BatchExecuteStatementInputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type ExecuteTransactionInputTransformInput struct {
+	SdkInput dynamodb.ExecuteTransactionInput
+}
+
+func (input ExecuteTransactionInputTransformInput) Validate() error {
+
+	return nil
+}
+
+type ExecuteTransactionInputTransformOutput struct {
+	TransformedInput dynamodb.ExecuteTransactionInput
+}
+
+func (input ExecuteTransactionInputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type ExecuteTransactionOutputTransformOutput struct {
+	TransformedOutput dynamodb.ExecuteTransactionOutput
+}
+
+func (input ExecuteTransactionOutputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type TransactGetItemsOutputTransformOutput struct {
+	TransformedOutput dynamodb.TransactGetItemsOutput
+}
+
+func (input TransactGetItemsOutputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type BatchGetItemInputTransformInput struct {
+	SdkInput dynamodb.BatchGetItemInput
+}
+
+func (input BatchGetItemInputTransformInput) Validate() error {
+
+	return nil
+}
+
+type BatchGetItemInputTransformOutput struct {
+	TransformedInput dynamodb.BatchGetItemInput
+}
+
+func (input BatchGetItemInputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type TransactGetItemsInputTransformInput struct {
+	SdkInput dynamodb.TransactGetItemsInput
+}
+
+func (input TransactGetItemsInputTransformInput) Validate() error {
+
+	return nil
+}
+
+type TransactGetItemsInputTransformOutput struct {
+	TransformedInput dynamodb.TransactGetItemsInput
+}
+
+func (input TransactGetItemsInputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type TransactWriteItemsOutputTransformOutput struct {
+	TransformedOutput dynamodb.TransactWriteItemsOutput
+}
+
+func (input TransactWriteItemsOutputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type GetItemOutputTransformInput struct {
+	OriginalInput dynamodb.GetItemInput
+
+	SdkOutput dynamodb.GetItemOutput
+}
+
+func (input GetItemOutputTransformInput) Validate() error {
+
+	return nil
+}
+
+type DeleteItemOutputTransformOutput struct {
+	TransformedOutput dynamodb.DeleteItemOutput
+}
+
+func (input DeleteItemOutputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type ExecuteStatementOutputTransformOutput struct {
+	TransformedOutput dynamodb.ExecuteStatementOutput
+}
+
+func (input ExecuteStatementOutputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type PutItemOutputTransformOutput struct {
+	TransformedOutput dynamodb.PutItemOutput
+}
+
+func (input PutItemOutputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type QueryOutputTransformOutput struct {
+	TransformedOutput dynamodb.QueryOutput
+}
+
+func (input QueryOutputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type ScanOutputTransformOutput struct {
+	TransformedOutput dynamodb.ScanOutput
+}
+
+func (input ScanOutputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type UpdateItemOutputTransformOutput struct {
+	TransformedOutput dynamodb.UpdateItemOutput
+}
+
+func (input UpdateItemOutputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type ExecuteTransactionOutputTransformInput struct {
+	OriginalInput dynamodb.ExecuteTransactionInput
+
+	SdkOutput dynamodb.ExecuteTransactionOutput
+}
+
+func (input ExecuteTransactionOutputTransformInput) Validate() error {
+
+	return nil
+}
+
+type BatchExecuteStatementOutputTransformOutput struct {
+	TransformedOutput dynamodb.BatchExecuteStatementOutput
+}
+
+func (input BatchExecuteStatementOutputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type BatchGetItemOutputTransformOutput struct {
+	TransformedOutput dynamodb.BatchGetItemOutput
+}
+
+func (input BatchGetItemOutputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type TransactGetItemsOutputTransformInput struct {
+	OriginalInput dynamodb.TransactGetItemsInput
+
+	SdkOutput dynamodb.TransactGetItemsOutput
+}
+
+func (input TransactGetItemsOutputTransformInput) Validate() error {
+
+	return nil
+}
+
+type ExecuteStatementOutputTransformInput struct {
+	OriginalInput dynamodb.ExecuteStatementInput
+
+	SdkOutput dynamodb.ExecuteStatementOutput
+}
+
+func (input ExecuteStatementOutputTransformInput) Validate() error {
+
+	return nil
+}
+
+type ScanInputTransformInput struct {
+	SdkInput dynamodb.ScanInput
+}
+
+func (input ScanInputTransformInput) Validate() error {
+
+	return nil
+}
+
+type ScanInputTransformOutput struct {
+	TransformedInput dynamodb.ScanInput
+}
+
+func (input ScanInputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type BatchWriteItemInputTransformInput struct {
+	SdkInput dynamodb.BatchWriteItemInput
+}
+
+func (input BatchWriteItemInputTransformInput) Validate() error {
+
+	return nil
+}
+
+type BatchWriteItemInputTransformOutput struct {
+	TransformedInput dynamodb.BatchWriteItemInput
+}
+
+func (input BatchWriteItemInputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type BatchExecuteStatementOutputTransformInput struct {
+	OriginalInput dynamodb.BatchExecuteStatementInput
+
+	SdkOutput dynamodb.BatchExecuteStatementOutput
+}
+
+func (input BatchExecuteStatementOutputTransformInput) Validate() error {
+
+	return nil
+}
+
+type BatchGetItemOutputTransformInput struct {
+	OriginalInput dynamodb.BatchGetItemInput
+
+	SdkOutput dynamodb.BatchGetItemOutput
+}
+
+func (input BatchGetItemOutputTransformInput) Validate() error {
+
+	return nil
+}
+
+type DeleteItemInputTransformInput struct {
+	SdkInput dynamodb.DeleteItemInput
+}
+
+func (input DeleteItemInputTransformInput) Validate() error {
+
+	return nil
+}
+
+type DeleteItemInputTransformOutput struct {
+	TransformedInput dynamodb.DeleteItemInput
+}
+
+func (input DeleteItemInputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type PutItemInputTransformInput struct {
+	SdkInput dynamodb.PutItemInput
+}
+
+func (input PutItemInputTransformInput) Validate() error {
+
+	return nil
+}
+
+type PutItemInputTransformOutput struct {
+	TransformedInput dynamodb.PutItemInput
+}
+
+func (input PutItemInputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type QueryInputTransformInput struct {
+	SdkInput dynamodb.QueryInput
+}
+
+func (input QueryInputTransformInput) Validate() error {
+
+	return nil
+}
+
+type QueryInputTransformOutput struct {
+	TransformedInput dynamodb.QueryInput
+}
+
+func (input QueryInputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type BatchWriteItemOutputTransformOutput struct {
+	TransformedOutput dynamodb.BatchWriteItemOutput
+}
+
+func (input BatchWriteItemOutputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type ScanOutputTransformInput struct {
+	OriginalInput dynamodb.ScanInput
+
+	SdkOutput dynamodb.ScanOutput
+}
+
+func (input ScanOutputTransformInput) Validate() error {
+
+	return nil
+}
+
+type UpdateItemInputTransformInput struct {
+	SdkInput dynamodb.UpdateItemInput
+}
+
+func (input UpdateItemInputTransformInput) Validate() error {
+
+	return nil
+}
+
+type UpdateItemInputTransformOutput struct {
+	TransformedInput dynamodb.UpdateItemInput
+}
+
+func (input UpdateItemInputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type DeleteItemOutputTransformInput struct {
+	OriginalInput dynamodb.DeleteItemInput
+
+	SdkOutput dynamodb.DeleteItemOutput
+}
+
+func (input DeleteItemOutputTransformInput) Validate() error {
+
+	return nil
+}
+
+type PutItemOutputTransformInput struct {
+	OriginalInput dynamodb.PutItemInput
+
+	SdkOutput dynamodb.PutItemOutput
+}
+
+func (input PutItemOutputTransformInput) Validate() error {
+
+	return nil
+}
+
+type QueryOutputTransformInput struct {
+	OriginalInput dynamodb.QueryInput
+
+	SdkOutput dynamodb.QueryOutput
+}
+
+func (input QueryOutputTransformInput) Validate() error {
+
+	return nil
+}
+
+type UpdateItemOutputTransformInput struct {
+	OriginalInput dynamodb.UpdateItemInput
+
+	SdkOutput dynamodb.UpdateItemOutput
+}
+
+func (input UpdateItemOutputTransformInput) Validate() error {
+
+	return nil
+}
+
+type BatchWriteItemOutputTransformInput struct {
+	OriginalInput dynamodb.BatchWriteItemInput
+
+	SdkOutput dynamodb.BatchWriteItemOutput
+}
+
+func (input BatchWriteItemOutputTransformInput) Validate() error {
+
+	return nil
+}
+
+type TransactWriteItemsInputTransformInput struct {
+	SdkInput dynamodb.TransactWriteItemsInput
+}
+
+func (input TransactWriteItemsInputTransformInput) Validate() error {
+
+	return nil
+}
+
+type TransactWriteItemsInputTransformOutput struct {
+	TransformedInput dynamodb.TransactWriteItemsInput
+}
+
+func (input TransactWriteItemsInputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type TransactWriteItemsOutputTransformInput struct {
+	OriginalInput dynamodb.TransactWriteItemsInput
+
+	SdkOutput dynamodb.TransactWriteItemsOutput
+}
+
+func (input TransactWriteItemsOutputTransformInput) Validate() error {
+
+	return nil
+}
+
+type AwsCryptographicMaterialProvidersReference struct {
+}
+
+func (input AwsCryptographicMaterialProvidersReference) Validate() error {
+
+	return nil
+}
+
+type DynamoDbEncryptionReference struct {
+}
+
+func (input DynamoDbEncryptionReference) Validate() error {
+
+	return nil
+}
+
+type DynamoDbItemEncryptorReference struct {
+}
+
+func (input DynamoDbItemEncryptorReference) Validate() error {
+
+	return nil
+}
+
+type StructuredEncryptionReference struct {
+}
+
+func (input StructuredEncryptionReference) Validate() error {
+
+	return nil
+}
+
+type DynamoDbEncryptionTransformsBaseException interface {
+	// This is a dummy method to allow type assertion since Go empty interfaces
+	// aren't useful for type assertion checks. No concrete class is expected to implement
+	// this method. This is also not exported.
+	interfaceBindingMethod()
+}
diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes/unmodelled_errors.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes/unmodelled_errors.go
new file mode 100644
index 000000000..5b0d77454
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes/unmodelled_errors.go
@@ -0,0 +1,26 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes
+
+import (
+	"fmt"
+)
+
+type CollectionOfErrors struct {
+	DynamoDbEncryptionTransformsBaseException
+	ListOfErrors []error
+	Message      string
+}
+
+func (e CollectionOfErrors) Error() string {
+	return fmt.Sprintf("message: %s\n err %v", e.Message, e.ListOfErrors)
+}
+
+type OpaqueError struct {
+	DynamoDbEncryptionTransformsBaseException
+	ErrObject interface{}
+}
+
+func (e OpaqueError) Error() string {
+	return fmt.Sprintf("message: %v", e.ErrObject)
+}
diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated/api_client.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated/api_client.go
new file mode 100644
index 000000000..c4aec9a70
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated/api_client.go
@@ -0,0 +1,131 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkstructuredencryptionsmithygenerated
+
+import (
+	"context"
+
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/StructuredEncryption"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes"
+)
+
+type Client struct {
+	DafnyClient AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.IStructuredEncryptionClient
+}
+
+func NewClient(clientConfig awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredEncryptionConfig) (*Client, error) {
+	var dafnyConfig = StructuredEncryptionConfig_ToDafny(clientConfig)
+	var dafny_response = StructuredEncryption.Companion_Default___.StructuredEncryption(dafnyConfig)
+	if dafny_response.Is_Failure() {
+		panic("Client construction failed. This should never happen")
+	}
+	var dafnyClient = dafny_response.Extract().(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.IStructuredEncryptionClient)
+	client := &Client{dafnyClient}
+	return client, nil
+}
+
+func (client *Client) EncryptStructure(ctx context.Context, params awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.EncryptStructureInput) (*awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.EncryptStructureOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptStructureInput = EncryptStructureInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.EncryptStructure(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = EncryptStructureOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptStructureOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) DecryptStructure(ctx context.Context, params awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.DecryptStructureInput) (*awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.DecryptStructureOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptStructureInput = DecryptStructureInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.DecryptStructure(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = DecryptStructureOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptStructureOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) EncryptPathStructure(ctx context.Context, params awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.EncryptPathStructureInput) (*awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.EncryptPathStructureOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptPathStructureInput = EncryptPathStructureInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.EncryptPathStructure(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = EncryptPathStructureOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptPathStructureOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) DecryptPathStructure(ctx context.Context, params awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.DecryptPathStructureInput) (*awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.DecryptPathStructureOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptPathStructureInput = DecryptPathStructureInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.DecryptPathStructure(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = DecryptPathStructureOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptPathStructureOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) ResolveAuthActions(ctx context.Context, params awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ResolveAuthActionsInput) (*awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ResolveAuthActionsOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ResolveAuthActionsInput = ResolveAuthActionsInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.ResolveAuthActions(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = ResolveAuthActionsOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ResolveAuthActionsOutput))
+	return &native_response, nil
+
+}
diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated/to_dafny.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated/to_dafny.go
new file mode 100644
index 000000000..28db8f6f4
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated/to_dafny.go
@@ -0,0 +1,846 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkstructuredencryptionsmithygenerated
+
+import (
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/awscryptographyprimitivessmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/awscryptographyprimitivessmithygeneratedtypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes"
+	"github.com/dafny-lang/DafnyRuntimeGo/v4/dafny"
+)
+
+func DecryptPathStructureInput_ToDafny(nativeInput awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.DecryptPathStructureInput) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptPathStructureInput {
+
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptPathStructureInput {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_DecryptPathStructureInput_.Create_DecryptPathStructureInput_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_tableName_ToDafny(nativeInput.TableName), Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_encryptedStructure_ToDafny(nativeInput.EncryptedStructure), awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsManager_ToDafny(nativeInput.Cmm), Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_encryptionContext_ToDafny(nativeInput.EncryptionContext))
+	}()
+
+}
+
+func DecryptPathStructureOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.DecryptPathStructureOutput) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptPathStructureOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptPathStructureOutput {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_DecryptPathStructureOutput_.Create_DecryptPathStructureOutput_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureOutput_plaintextStructure_ToDafny(nativeOutput.PlaintextStructure), Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureOutput_parsedHeader_ToDafny(nativeOutput.ParsedHeader))
+	}()
+
+}
+
+func DecryptStructureInput_ToDafny(nativeInput awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.DecryptStructureInput) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptStructureInput {
+
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptStructureInput {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_DecryptStructureInput_.Create_DecryptStructureInput_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_tableName_ToDafny(nativeInput.TableName), Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_encryptedStructure_ToDafny(nativeInput.EncryptedStructure), Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_authenticateSchema_ToDafny(nativeInput.AuthenticateSchema), awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsManager_ToDafny(nativeInput.Cmm), Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_encryptionContext_ToDafny(nativeInput.EncryptionContext))
+	}()
+
+}
+
+func DecryptStructureOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.DecryptStructureOutput) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptStructureOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptStructureOutput {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_DecryptStructureOutput_.Create_DecryptStructureOutput_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureOutput_plaintextStructure_ToDafny(nativeOutput.PlaintextStructure), Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureOutput_cryptoSchema_ToDafny(nativeOutput.CryptoSchema), Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureOutput_parsedHeader_ToDafny(nativeOutput.ParsedHeader))
+	}()
+
+}
+
+func EncryptPathStructureInput_ToDafny(nativeInput awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.EncryptPathStructureInput) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptPathStructureInput {
+
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptPathStructureInput {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_EncryptPathStructureInput_.Create_EncryptPathStructureInput_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_tableName_ToDafny(nativeInput.TableName), Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_plaintextStructure_ToDafny(nativeInput.PlaintextStructure), awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsManager_ToDafny(nativeInput.Cmm), Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_algorithmSuiteId_ToDafny(nativeInput.AlgorithmSuiteId), Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_encryptionContext_ToDafny(nativeInput.EncryptionContext))
+	}()
+
+}
+
+func EncryptPathStructureOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.EncryptPathStructureOutput) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptPathStructureOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptPathStructureOutput {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_EncryptPathStructureOutput_.Create_EncryptPathStructureOutput_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureOutput_encryptedStructure_ToDafny(nativeOutput.EncryptedStructure), Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureOutput_parsedHeader_ToDafny(nativeOutput.ParsedHeader))
+	}()
+
+}
+
+func EncryptStructureInput_ToDafny(nativeInput awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.EncryptStructureInput) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptStructureInput {
+
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptStructureInput {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_EncryptStructureInput_.Create_EncryptStructureInput_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_tableName_ToDafny(nativeInput.TableName), Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_plaintextStructure_ToDafny(nativeInput.PlaintextStructure), Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_cryptoSchema_ToDafny(nativeInput.CryptoSchema), awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsManager_ToDafny(nativeInput.Cmm), Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_algorithmSuiteId_ToDafny(nativeInput.AlgorithmSuiteId), Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_encryptionContext_ToDafny(nativeInput.EncryptionContext))
+	}()
+
+}
+
+func EncryptStructureOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.EncryptStructureOutput) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptStructureOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptStructureOutput {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_EncryptStructureOutput_.Create_EncryptStructureOutput_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureOutput_encryptedStructure_ToDafny(nativeOutput.EncryptedStructure), Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureOutput_cryptoSchema_ToDafny(nativeOutput.CryptoSchema), Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureOutput_parsedHeader_ToDafny(nativeOutput.ParsedHeader))
+	}()
+
+}
+
+func ResolveAuthActionsInput_ToDafny(nativeInput awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ResolveAuthActionsInput) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ResolveAuthActionsInput {
+
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ResolveAuthActionsInput {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_ResolveAuthActionsInput_.Create_ResolveAuthActionsInput_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsInput_tableName_ToDafny(nativeInput.TableName), Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsInput_authActions_ToDafny(nativeInput.AuthActions), Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsInput_headerBytes_ToDafny(nativeInput.HeaderBytes))
+	}()
+
+}
+
+func ResolveAuthActionsOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ResolveAuthActionsOutput) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ResolveAuthActionsOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ResolveAuthActionsOutput {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_ResolveAuthActionsOutput_.Create_ResolveAuthActionsOutput_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsOutput_cryptoActions_ToDafny(nativeOutput.CryptoActions))
+	}()
+
+}
+
+func StructuredEncryptionException_ToDafny(nativeInput awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredEncryptionException) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error {
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_Error_.Create_StructuredEncryptionException_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredEncryptionException_message_ToDafny(nativeInput.Message))
+	}()
+
+}
+
+func CollectionOfErrors_Input_ToDafny(nativeInput awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CollectionOfErrors) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error {
+	var e []interface{}
+	for _, i2 := range nativeInput.ListOfErrors {
+		e = append(e, Error_ToDafny(i2))
+	}
+	return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_Error_.Create_CollectionOfErrors_(dafny.SeqOf(e...), func() dafny.Sequence {
+		res, err := UTF8.DecodeFromNativeGoByteArray([]byte(nativeInput.Message))
+		if err != nil {
+			panic("invalid utf8 input provided")
+		}
+		return res
+	}())
+}
+func OpaqueError_Input_ToDafny(nativeInput awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.OpaqueError) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error {
+	return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_Error_.Create_Opaque_(nativeInput.ErrObject)
+}
+
+func Error_ToDafny(err error) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error {
+	switch err.(type) {
+	// Service Errors
+	case awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredEncryptionException:
+		return StructuredEncryptionException_ToDafny(err.(awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredEncryptionException))
+
+	//DependentErrors
+	case awscryptographyprimitivessmithygeneratedtypes.AwsCryptographicPrimitivesBaseException:
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(awscryptographyprimitivessmithygenerated.Error_ToDafny(err))
+
+	case awscryptographymaterialproviderssmithygeneratedtypes.AwsCryptographicMaterialProvidersBaseException:
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_Error_.Create_AwsCryptographyMaterialProviders_(awscryptographymaterialproviderssmithygenerated.Error_ToDafny(err))
+
+	//Unmodelled Errors
+	case awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CollectionOfErrors:
+		return CollectionOfErrors_Input_ToDafny(err.(awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CollectionOfErrors))
+
+	default:
+		error, ok := err.(awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.OpaqueError)
+		if !ok {
+			panic("Error is not an OpaqueError")
+		}
+		return OpaqueError_Input_ToDafny(error)
+	}
+}
+
+func StructuredEncryptionConfig_ToDafny(nativeInput awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredEncryptionConfig) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredEncryptionConfig {
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredEncryptionConfig {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_StructuredEncryptionConfig_.Create_StructuredEncryptionConfig_()
+	}()
+
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_tableName_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_encryptedStructure_ToDafny(input []awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthItem) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return dafny.SeqOf(fieldValue...)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthList_member_ToDafny(input awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthItem) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem {
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_AuthItem_.Create_AuthItem_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthItem_key_ToDafny(input.Key), Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthItem_data_ToDafny(input.Data), Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthItem_action_ToDafny(input.Action))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthItem_key_ToDafny(input []awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.PathSegment) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_structuredEncryption_Path_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return dafny.SeqOf(fieldValue...)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_Path_member_ToDafny(input awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.PathSegment) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.PathSegment {
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.PathSegment {
+
+		switch input.(type) {
+		case *awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.PathSegmentMembermember:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_structuredEncryption_PathSegment_member_ToDafny(input.(*awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.PathSegmentMembermember).Value)
+			return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CompanionStruct_PathSegment_{}.Create_member_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructureSegment))
+
+		default:
+			panic("Unhandled union type")
+		}
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_PathSegment_member_ToDafny(input awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructureSegment) Wrappers.Option {
+	return func() Wrappers.Option {
+
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_StructureSegment_.Create_StructureSegment_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructureSegment_key_ToDafny(input.Key)))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructureSegment_key_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthItem_data_ToDafny(input awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal {
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_StructuredDataTerminal_.Create_StructuredDataTerminal_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataTerminal_value_ToDafny(input.Value), Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataTerminal_typeId_ToDafny(input.TypeId))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataTerminal_value_ToDafny(input []byte) dafny.Sequence {
+	return func() dafny.Sequence {
+		v := make([]interface{}, 0, len(input))
+		if input == nil {
+			return nil
+		}
+		for _, e := range input {
+			v = append(v, e)
+		}
+		return dafny.SeqFromArray(v, false)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataTerminal_typeId_ToDafny(input []byte) dafny.Sequence {
+	return func() dafny.Sequence {
+		v := make([]interface{}, 0, len(input))
+		if input == nil {
+			return nil
+		}
+		for _, e := range input {
+			v = append(v, e)
+		}
+		return dafny.SeqFromArray(v, false)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthItem_action_ToDafny(input awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthenticateAction) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthenticateAction {
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthenticateAction {
+
+		var index int
+		for _, enumVal := range input.Values() {
+			index++
+			if enumVal == input {
+				break
+			}
+			if index == len(input.Values()) {
+				panic("Input value did not found in enum values")
+			}
+
+		}
+		var enum interface{}
+		for allEnums, i := dafny.Iterate(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CompanionStruct_AuthenticateAction_{}.AllSingletonConstructors()), 0; i < index; i++ {
+			var ok bool
+			enum, ok = allEnums()
+			if !ok {
+				break
+			}
+		}
+		return enum.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthenticateAction)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_encryptionContext_ToDafny(input map[string]string) Wrappers.Option {
+	return func() Wrappers.Option {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_key_ToDafny(key), awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_value_ToDafny(val))
+		}
+		return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureOutput_plaintextStructure_ToDafny(input []awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoItem) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return dafny.SeqOf(fieldValue...)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoList_member_ToDafny(input awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoItem) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem {
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoItem_.Create_CryptoItem_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoItem_key_ToDafny(input.Key), Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoItem_data_ToDafny(input.Data), Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoItem_action_ToDafny(input.Action))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoItem_key_ToDafny(input []awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.PathSegment) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_structuredEncryption_Path_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return dafny.SeqOf(fieldValue...)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoItem_data_ToDafny(input awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal {
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_StructuredDataTerminal_.Create_StructuredDataTerminal_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataTerminal_value_ToDafny(input.Value), Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataTerminal_typeId_ToDafny(input.TypeId))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoItem_action_ToDafny(input awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction {
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction {
+
+		var index int
+		for _, enumVal := range input.Values() {
+			index++
+			if enumVal == input {
+				break
+			}
+			if index == len(input.Values()) {
+				panic("Input value did not found in enum values")
+			}
+
+		}
+		var enum interface{}
+		for allEnums, i := dafny.Iterate(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CompanionStruct_CryptoAction_{}.AllSingletonConstructors()), 0; i < index; i++ {
+			var ok bool
+			enum, ok = allEnums()
+			if !ok {
+				break
+			}
+		}
+		return enum.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureOutput_parsedHeader_ToDafny(input awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ParsedHeader) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader {
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_ParsedHeader_.Create_ParsedHeader_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_algorithmSuiteId_ToDafny(input.AlgorithmSuiteId), Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptedDataKeys_ToDafny(input.EncryptedDataKeys), Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_storedEncryptionContext_ToDafny(input.StoredEncryptionContext), Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptionContext_ToDafny(input.EncryptionContext))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_algorithmSuiteId_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId) AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId {
+	return func() AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId {
+
+		var index int
+		for _, enumVal := range input.Values() {
+			index++
+			if enumVal == input {
+				break
+			}
+			if index == len(input.Values()) {
+				panic("Input value did not found in enum values")
+			}
+
+		}
+		var enum interface{}
+		for allEnums, i := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_DBEAlgorithmSuiteId_{}.AllSingletonConstructors()), 0; i < index; i++ {
+			var ok bool
+			enum, ok = allEnums()
+			if !ok {
+				break
+			}
+		}
+		return enum.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptedDataKeys_ToDafny(input []awscryptographymaterialproviderssmithygeneratedtypes.EncryptedDataKey) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptedDataKeyList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return dafny.SeqOf(fieldValue...)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_storedEncryptionContext_ToDafny(input map[string]string) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_key_ToDafny(key), awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptionContext_ToDafny(input map[string]string) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_key_ToDafny(key), awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_tableName_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_encryptedStructure_ToDafny(input map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_key_ToDafny(key), Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_key_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_value_ToDafny(input awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal {
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_StructuredDataTerminal_.Create_StructuredDataTerminal_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataTerminal_value_ToDafny(input.Value), Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataTerminal_typeId_ToDafny(input.TypeId))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_authenticateSchema_ToDafny(input map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthenticateAction) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthenticateSchemaMap_key_ToDafny(key), Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthenticateSchemaMap_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthenticateSchemaMap_key_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthenticateSchemaMap_value_ToDafny(input awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthenticateAction) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthenticateAction {
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthenticateAction {
+
+		var index int
+		for _, enumVal := range input.Values() {
+			index++
+			if enumVal == input {
+				break
+			}
+			if index == len(input.Values()) {
+				panic("Input value did not found in enum values")
+			}
+
+		}
+		var enum interface{}
+		for allEnums, i := dafny.Iterate(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CompanionStruct_AuthenticateAction_{}.AllSingletonConstructors()), 0; i < index; i++ {
+			var ok bool
+			enum, ok = allEnums()
+			if !ok {
+				break
+			}
+		}
+		return enum.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthenticateAction)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_encryptionContext_ToDafny(input map[string]string) Wrappers.Option {
+	return func() Wrappers.Option {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_key_ToDafny(key), awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_value_ToDafny(val))
+		}
+		return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureOutput_plaintextStructure_ToDafny(input map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_key_ToDafny(key), Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureOutput_cryptoSchema_ToDafny(input map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoSchemaMap_key_ToDafny(key), Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoSchemaMap_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoSchemaMap_key_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoSchemaMap_value_ToDafny(input awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction {
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction {
+
+		var index int
+		for _, enumVal := range input.Values() {
+			index++
+			if enumVal == input {
+				break
+			}
+			if index == len(input.Values()) {
+				panic("Input value did not found in enum values")
+			}
+
+		}
+		var enum interface{}
+		for allEnums, i := dafny.Iterate(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CompanionStruct_CryptoAction_{}.AllSingletonConstructors()), 0; i < index; i++ {
+			var ok bool
+			enum, ok = allEnums()
+			if !ok {
+				break
+			}
+		}
+		return enum.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureOutput_parsedHeader_ToDafny(input awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ParsedHeader) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader {
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_ParsedHeader_.Create_ParsedHeader_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_algorithmSuiteId_ToDafny(input.AlgorithmSuiteId), Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptedDataKeys_ToDafny(input.EncryptedDataKeys), Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_storedEncryptionContext_ToDafny(input.StoredEncryptionContext), Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptionContext_ToDafny(input.EncryptionContext))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_tableName_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_plaintextStructure_ToDafny(input []awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoItem) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return dafny.SeqOf(fieldValue...)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_algorithmSuiteId_ToDafny(input *awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		var index int
+		for _, enumVal := range input.Values() {
+			index++
+			if enumVal == *input {
+				break
+			}
+
+		}
+		var enum interface{}
+		for allEnums, i := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_DBEAlgorithmSuiteId_{}.AllSingletonConstructors()), 0; i < index; i++ {
+			var ok bool
+			enum, ok = allEnums()
+			if !ok {
+				break
+			}
+		}
+		return Wrappers.Companion_Option_.Create_Some_(enum.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_encryptionContext_ToDafny(input map[string]string) Wrappers.Option {
+	return func() Wrappers.Option {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_key_ToDafny(key), awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_value_ToDafny(val))
+		}
+		return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureOutput_encryptedStructure_ToDafny(input []awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoItem) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return dafny.SeqOf(fieldValue...)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureOutput_parsedHeader_ToDafny(input awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ParsedHeader) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader {
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_ParsedHeader_.Create_ParsedHeader_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_algorithmSuiteId_ToDafny(input.AlgorithmSuiteId), Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptedDataKeys_ToDafny(input.EncryptedDataKeys), Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_storedEncryptionContext_ToDafny(input.StoredEncryptionContext), Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptionContext_ToDafny(input.EncryptionContext))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_tableName_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_plaintextStructure_ToDafny(input map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_key_ToDafny(key), Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_cryptoSchema_ToDafny(input map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoSchemaMap_key_ToDafny(key), Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoSchemaMap_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_algorithmSuiteId_ToDafny(input *awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		var index int
+		for _, enumVal := range input.Values() {
+			index++
+			if enumVal == *input {
+				break
+			}
+
+		}
+		var enum interface{}
+		for allEnums, i := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_DBEAlgorithmSuiteId_{}.AllSingletonConstructors()), 0; i < index; i++ {
+			var ok bool
+			enum, ok = allEnums()
+			if !ok {
+				break
+			}
+		}
+		return Wrappers.Companion_Option_.Create_Some_(enum.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_encryptionContext_ToDafny(input map[string]string) Wrappers.Option {
+	return func() Wrappers.Option {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_key_ToDafny(key), awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_value_ToDafny(val))
+		}
+		return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureOutput_encryptedStructure_ToDafny(input map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_key_ToDafny(key), Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureOutput_cryptoSchema_ToDafny(input map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoSchemaMap_key_ToDafny(key), Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoSchemaMap_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureOutput_parsedHeader_ToDafny(input awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ParsedHeader) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader {
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_ParsedHeader_.Create_ParsedHeader_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_algorithmSuiteId_ToDafny(input.AlgorithmSuiteId), Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptedDataKeys_ToDafny(input.EncryptedDataKeys), Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_storedEncryptionContext_ToDafny(input.StoredEncryptionContext), Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptionContext_ToDafny(input.EncryptionContext))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsInput_tableName_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsInput_authActions_ToDafny(input []awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthItem) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return dafny.SeqOf(fieldValue...)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsInput_headerBytes_ToDafny(input []byte) dafny.Sequence {
+	return func() dafny.Sequence {
+		v := make([]interface{}, 0, len(input))
+		if input == nil {
+			return nil
+		}
+		for _, e := range input {
+			v = append(v, e)
+		}
+		return dafny.SeqFromArray(v, false)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsOutput_cryptoActions_ToDafny(input []awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoItem) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return dafny.SeqOf(fieldValue...)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredEncryptionException_message_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated/to_native.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated/to_native.go
new file mode 100644
index 000000000..cf49457e6
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated/to_native.go
@@ -0,0 +1,808 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkstructuredencryptionsmithygenerated
+
+import (
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/awscryptographyprimitivessmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes"
+	"github.com/dafny-lang/DafnyRuntimeGo/v4/dafny"
+)
+
+func DecryptPathStructureInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptPathStructureInput) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.DecryptPathStructureInput {
+
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.DecryptPathStructureInput{TableName: Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_tableName_FromDafny(dafnyInput.Dtor_tableName()),
+		EncryptedStructure: Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_encryptedStructure_FromDafny(dafnyInput.Dtor_encryptedStructure()),
+		Cmm:                awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsManager_FromDafny(dafnyInput.Dtor_cmm()),
+		EncryptionContext:  Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_encryptionContext_FromDafny(dafnyInput.Dtor_encryptionContext().UnwrapOr(nil)),
+	}
+
+}
+
+func DecryptPathStructureOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptPathStructureOutput) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.DecryptPathStructureOutput {
+
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.DecryptPathStructureOutput{PlaintextStructure: Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureOutput_plaintextStructure_FromDafny(dafnyOutput.Dtor_plaintextStructure()),
+		ParsedHeader: Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureOutput_parsedHeader_FromDafny(dafnyOutput.Dtor_parsedHeader()),
+	}
+
+}
+
+func DecryptStructureInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptStructureInput) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.DecryptStructureInput {
+
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.DecryptStructureInput{TableName: Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_tableName_FromDafny(dafnyInput.Dtor_tableName()),
+		EncryptedStructure: Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_encryptedStructure_FromDafny(dafnyInput.Dtor_encryptedStructure()),
+		AuthenticateSchema: Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_authenticateSchema_FromDafny(dafnyInput.Dtor_authenticateSchema()),
+		Cmm:                awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsManager_FromDafny(dafnyInput.Dtor_cmm()),
+		EncryptionContext:  Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_encryptionContext_FromDafny(dafnyInput.Dtor_encryptionContext().UnwrapOr(nil)),
+	}
+
+}
+
+func DecryptStructureOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptStructureOutput) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.DecryptStructureOutput {
+
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.DecryptStructureOutput{PlaintextStructure: Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureOutput_plaintextStructure_FromDafny(dafnyOutput.Dtor_plaintextStructure()),
+		CryptoSchema: Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureOutput_cryptoSchema_FromDafny(dafnyOutput.Dtor_cryptoSchema()),
+		ParsedHeader: Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureOutput_parsedHeader_FromDafny(dafnyOutput.Dtor_parsedHeader()),
+	}
+
+}
+
+func EncryptPathStructureInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptPathStructureInput) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.EncryptPathStructureInput {
+
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.EncryptPathStructureInput{TableName: Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_tableName_FromDafny(dafnyInput.Dtor_tableName()),
+		PlaintextStructure: Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_plaintextStructure_FromDafny(dafnyInput.Dtor_plaintextStructure()),
+		Cmm:                awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsManager_FromDafny(dafnyInput.Dtor_cmm()),
+		AlgorithmSuiteId:   Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_algorithmSuiteId_FromDafny(dafnyInput.Dtor_algorithmSuiteId().UnwrapOr(nil)),
+		EncryptionContext:  Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_encryptionContext_FromDafny(dafnyInput.Dtor_encryptionContext().UnwrapOr(nil)),
+	}
+
+}
+
+func EncryptPathStructureOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptPathStructureOutput) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.EncryptPathStructureOutput {
+
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.EncryptPathStructureOutput{EncryptedStructure: Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureOutput_encryptedStructure_FromDafny(dafnyOutput.Dtor_encryptedStructure()),
+		ParsedHeader: Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureOutput_parsedHeader_FromDafny(dafnyOutput.Dtor_parsedHeader()),
+	}
+
+}
+
+func EncryptStructureInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptStructureInput) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.EncryptStructureInput {
+
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.EncryptStructureInput{TableName: Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_tableName_FromDafny(dafnyInput.Dtor_tableName()),
+		PlaintextStructure: Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_plaintextStructure_FromDafny(dafnyInput.Dtor_plaintextStructure()),
+		CryptoSchema:       Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_cryptoSchema_FromDafny(dafnyInput.Dtor_cryptoSchema()),
+		Cmm:                awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsManager_FromDafny(dafnyInput.Dtor_cmm()),
+		AlgorithmSuiteId:   Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_algorithmSuiteId_FromDafny(dafnyInput.Dtor_algorithmSuiteId().UnwrapOr(nil)),
+		EncryptionContext:  Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_encryptionContext_FromDafny(dafnyInput.Dtor_encryptionContext().UnwrapOr(nil)),
+	}
+
+}
+
+func EncryptStructureOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptStructureOutput) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.EncryptStructureOutput {
+
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.EncryptStructureOutput{EncryptedStructure: Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureOutput_encryptedStructure_FromDafny(dafnyOutput.Dtor_encryptedStructure()),
+		CryptoSchema: Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureOutput_cryptoSchema_FromDafny(dafnyOutput.Dtor_cryptoSchema()),
+		ParsedHeader: Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureOutput_parsedHeader_FromDafny(dafnyOutput.Dtor_parsedHeader()),
+	}
+
+}
+
+func ResolveAuthActionsInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ResolveAuthActionsInput) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ResolveAuthActionsInput {
+
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ResolveAuthActionsInput{TableName: Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsInput_tableName_FromDafny(dafnyInput.Dtor_tableName()),
+		AuthActions: Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsInput_authActions_FromDafny(dafnyInput.Dtor_authActions()),
+		HeaderBytes: Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsInput_headerBytes_FromDafny(dafnyInput.Dtor_headerBytes()),
+	}
+
+}
+
+func ResolveAuthActionsOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ResolveAuthActionsOutput) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ResolveAuthActionsOutput {
+
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ResolveAuthActionsOutput{CryptoActions: Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsOutput_cryptoActions_FromDafny(dafnyOutput.Dtor_cryptoActions())}
+
+}
+
+func StructuredEncryptionException_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredEncryptionException {
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredEncryptionException{Message: Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredEncryptionException_message_FromDafny(dafnyOutput.Dtor_message())}
+
+}
+
+func CollectionOfErrors_Output_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CollectionOfErrors {
+	listOfErrors := dafnyOutput.Dtor_list()
+	message := dafnyOutput.Dtor_message()
+	t := awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CollectionOfErrors{}
+	for i := dafny.Iterate(listOfErrors); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		err := val.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error)
+		t.ListOfErrors = append(t.ListOfErrors, Error_FromDafny(err))
+
+	}
+	t.Message = func() string {
+		a := UTF8.Encode(message.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+		return s
+	}()
+	return t
+}
+func OpaqueError_Output_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.OpaqueError {
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.OpaqueError{
+		ErrObject: dafnyOutput.Dtor_obj(),
+	}
+}
+
+func Error_FromDafny(err AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) error {
+	// Service Errors
+	if err.Is_StructuredEncryptionException() {
+		return StructuredEncryptionException_FromDafny(err)
+	}
+
+	//DependentErrors
+	if err.Is_AwsCryptographyPrimitives() {
+		return awscryptographyprimitivessmithygenerated.Error_FromDafny(err.Dtor_AwsCryptographyPrimitives())
+	}
+
+	if err.Is_AwsCryptographyMaterialProviders() {
+		return awscryptographymaterialproviderssmithygenerated.Error_FromDafny(err.Dtor_AwsCryptographyMaterialProviders())
+	}
+
+	//Unmodelled Errors
+	if err.Is_CollectionOfErrors() {
+		return CollectionOfErrors_Output_FromDafny(err)
+	}
+
+	return OpaqueError_Output_FromDafny(err)
+}
+
+func StructuredEncryptionConfig_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredEncryptionConfig) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredEncryptionConfig {
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredEncryptionConfig{}
+
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_tableName_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_encryptedStructure_FromDafny(input interface{}) []awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthItem {
+	fieldValue := make([]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthItem, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthList_member_FromDafny(input interface{}) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthItem {
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthItem{Key: Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthItem_key_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem).Dtor_key()),
+		Data:   Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthItem_data_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem).Dtor_data()),
+		Action: Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthItem_action_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem).Dtor_action()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthItem_key_FromDafny(input interface{}) []awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.PathSegment {
+	fieldValue := make([]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.PathSegment, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_structuredEncryption_Path_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_Path_member_FromDafny(input interface{}) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.PathSegment {
+	var union awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.PathSegment
+
+	if (input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.PathSegment)).Is_member() {
+
+		union = &awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.PathSegmentMembermember{
+			Value: (Aws_cryptography_dbEncryptionSdk_structuredEncryption_PathSegment_member_FromDafny((input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.PathSegment)).Dtor_member())),
+		}
+	}
+
+	return union
+
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_PathSegment_member_FromDafny(input interface{}) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructureSegment {
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructureSegment{Key: Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructureSegment_key_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructureSegment).Dtor_key())}
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructureSegment_key_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthItem_data_FromDafny(input interface{}) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal {
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal{Value: Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataTerminal_value_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal).Dtor_value()),
+		TypeId: Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataTerminal_typeId_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal).Dtor_typeId()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataTerminal_value_FromDafny(input interface{}) []byte {
+	return func() []byte {
+		if input == nil {
+			return nil
+		}
+		a := input.(dafny.Sequence).ToArray().(dafny.GoNativeArray)
+		b := make([]byte, 0, a.Length())
+		for i := uint32(0); i < a.Length(); i++ {
+			b = append(b, a.Select(i).(byte))
+		}
+		return b
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataTerminal_typeId_FromDafny(input interface{}) []byte {
+	return func() []byte {
+		if input == nil {
+			return nil
+		}
+		a := input.(dafny.Sequence).ToArray().(dafny.GoNativeArray)
+		b := make([]byte, 0, a.Length())
+		for i := uint32(0); i < a.Length(); i++ {
+			b = append(b, a.Select(i).(byte))
+		}
+		return b
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthItem_action_FromDafny(input interface{}) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthenticateAction {
+	return func() awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthenticateAction {
+		var u awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthenticateAction
+		inputEnum := input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthenticateAction)
+		index := -1
+		for allEnums := dafny.Iterate(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CompanionStruct_AuthenticateAction_{}.AllSingletonConstructors()); ; {
+			enum, ok := allEnums()
+			if ok {
+				index++
+				if enum.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthenticateAction).Equals(inputEnum) {
+					break
+				}
+			}
+		}
+
+		return u.Values()[index]
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_encryptionContext_FromDafny(input interface{}) map[string]string {
+	var m map[string]string = make(map[string]string)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureOutput_plaintextStructure_FromDafny(input interface{}) []awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoItem {
+	fieldValue := make([]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoItem, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoList_member_FromDafny(input interface{}) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoItem {
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoItem{Key: Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoItem_key_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem).Dtor_key()),
+		Data:   Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoItem_data_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem).Dtor_data()),
+		Action: Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoItem_action_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem).Dtor_action()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoItem_key_FromDafny(input interface{}) []awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.PathSegment {
+	fieldValue := make([]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.PathSegment, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_structuredEncryption_Path_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoItem_data_FromDafny(input interface{}) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal {
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal{Value: Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataTerminal_value_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal).Dtor_value()),
+		TypeId: Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataTerminal_typeId_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal).Dtor_typeId()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoItem_action_FromDafny(input interface{}) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction {
+	return func() awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction {
+		var u awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction
+		inputEnum := input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction)
+		index := -1
+		for allEnums := dafny.Iterate(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CompanionStruct_CryptoAction_{}.AllSingletonConstructors()); ; {
+			enum, ok := allEnums()
+			if ok {
+				index++
+				if enum.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction).Equals(inputEnum) {
+					break
+				}
+			}
+		}
+
+		return u.Values()[index]
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureOutput_parsedHeader_FromDafny(input interface{}) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ParsedHeader {
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ParsedHeader{AlgorithmSuiteId: Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_algorithmSuiteId_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader).Dtor_algorithmSuiteId()),
+		EncryptedDataKeys:       Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptedDataKeys_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader).Dtor_encryptedDataKeys()),
+		StoredEncryptionContext: Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_storedEncryptionContext_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader).Dtor_storedEncryptionContext()),
+		EncryptionContext:       Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptionContext_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader).Dtor_encryptionContext()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_algorithmSuiteId_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId {
+	return func() awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId {
+		var u awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId
+		inputEnum := input.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId)
+		index := -1
+		for allEnums := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_DBEAlgorithmSuiteId_{}.AllSingletonConstructors()); ; {
+			enum, ok := allEnums()
+			if ok {
+				index++
+				if enum.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId).Equals(inputEnum) {
+					break
+				}
+			}
+		}
+
+		return u.Values()[index]
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptedDataKeys_FromDafny(input interface{}) []awscryptographymaterialproviderssmithygeneratedtypes.EncryptedDataKey {
+	fieldValue := make([]awscryptographymaterialproviderssmithygeneratedtypes.EncryptedDataKey, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptedDataKeyList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_storedEncryptionContext_FromDafny(input interface{}) map[string]string {
+	var m map[string]string = make(map[string]string)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptionContext_FromDafny(input interface{}) map[string]string {
+	var m map[string]string = make(map[string]string)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_tableName_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_encryptedStructure_FromDafny(input interface{}) map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal {
+	var m map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal = make(map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_key_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_value_FromDafny(input interface{}) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal {
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal{Value: Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataTerminal_value_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal).Dtor_value()),
+		TypeId: Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataTerminal_typeId_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal).Dtor_typeId()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_authenticateSchema_FromDafny(input interface{}) map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthenticateAction {
+	var m map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthenticateAction = make(map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthenticateAction)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthenticateSchemaMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthenticateSchemaMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthenticateSchemaMap_key_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthenticateSchemaMap_value_FromDafny(input interface{}) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthenticateAction {
+	return func() awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthenticateAction {
+		var u awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthenticateAction
+		inputEnum := input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthenticateAction)
+		index := -1
+		for allEnums := dafny.Iterate(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CompanionStruct_AuthenticateAction_{}.AllSingletonConstructors()); ; {
+			enum, ok := allEnums()
+			if ok {
+				index++
+				if enum.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthenticateAction).Equals(inputEnum) {
+					break
+				}
+			}
+		}
+
+		return u.Values()[index]
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_encryptionContext_FromDafny(input interface{}) map[string]string {
+	var m map[string]string = make(map[string]string)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureOutput_plaintextStructure_FromDafny(input interface{}) map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal {
+	var m map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal = make(map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureOutput_cryptoSchema_FromDafny(input interface{}) map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction {
+	var m map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction = make(map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoSchemaMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoSchemaMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoSchemaMap_key_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoSchemaMap_value_FromDafny(input interface{}) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction {
+	return func() awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction {
+		var u awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction
+		inputEnum := input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction)
+		index := -1
+		for allEnums := dafny.Iterate(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CompanionStruct_CryptoAction_{}.AllSingletonConstructors()); ; {
+			enum, ok := allEnums()
+			if ok {
+				index++
+				if enum.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction).Equals(inputEnum) {
+					break
+				}
+			}
+		}
+
+		return u.Values()[index]
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureOutput_parsedHeader_FromDafny(input interface{}) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ParsedHeader {
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ParsedHeader{AlgorithmSuiteId: Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_algorithmSuiteId_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader).Dtor_algorithmSuiteId()),
+		EncryptedDataKeys:       Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptedDataKeys_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader).Dtor_encryptedDataKeys()),
+		StoredEncryptionContext: Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_storedEncryptionContext_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader).Dtor_storedEncryptionContext()),
+		EncryptionContext:       Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptionContext_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader).Dtor_encryptionContext()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_tableName_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_plaintextStructure_FromDafny(input interface{}) []awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoItem {
+	fieldValue := make([]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoItem, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_algorithmSuiteId_FromDafny(input interface{}) *awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId {
+	return func() *awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId {
+		var u awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId
+		if input == nil {
+			return nil
+		}
+		inputEnum := input.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId)
+		index := -1
+		for allEnums := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_DBEAlgorithmSuiteId_{}.AllSingletonConstructors()); ; {
+			enum, ok := allEnums()
+			if ok {
+				index++
+				if enum.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId).Equals(inputEnum) {
+					break
+				}
+			}
+		}
+
+		return &u.Values()[index]
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_encryptionContext_FromDafny(input interface{}) map[string]string {
+	var m map[string]string = make(map[string]string)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureOutput_encryptedStructure_FromDafny(input interface{}) []awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoItem {
+	fieldValue := make([]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoItem, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureOutput_parsedHeader_FromDafny(input interface{}) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ParsedHeader {
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ParsedHeader{AlgorithmSuiteId: Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_algorithmSuiteId_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader).Dtor_algorithmSuiteId()),
+		EncryptedDataKeys:       Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptedDataKeys_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader).Dtor_encryptedDataKeys()),
+		StoredEncryptionContext: Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_storedEncryptionContext_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader).Dtor_storedEncryptionContext()),
+		EncryptionContext:       Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptionContext_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader).Dtor_encryptionContext()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_tableName_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_plaintextStructure_FromDafny(input interface{}) map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal {
+	var m map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal = make(map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_cryptoSchema_FromDafny(input interface{}) map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction {
+	var m map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction = make(map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoSchemaMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoSchemaMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_algorithmSuiteId_FromDafny(input interface{}) *awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId {
+	return func() *awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId {
+		var u awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId
+		if input == nil {
+			return nil
+		}
+		inputEnum := input.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId)
+		index := -1
+		for allEnums := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_DBEAlgorithmSuiteId_{}.AllSingletonConstructors()); ; {
+			enum, ok := allEnums()
+			if ok {
+				index++
+				if enum.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId).Equals(inputEnum) {
+					break
+				}
+			}
+		}
+
+		return &u.Values()[index]
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_encryptionContext_FromDafny(input interface{}) map[string]string {
+	var m map[string]string = make(map[string]string)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureOutput_encryptedStructure_FromDafny(input interface{}) map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal {
+	var m map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal = make(map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureOutput_cryptoSchema_FromDafny(input interface{}) map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction {
+	var m map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction = make(map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoSchemaMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoSchemaMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureOutput_parsedHeader_FromDafny(input interface{}) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ParsedHeader {
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ParsedHeader{AlgorithmSuiteId: Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_algorithmSuiteId_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader).Dtor_algorithmSuiteId()),
+		EncryptedDataKeys:       Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptedDataKeys_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader).Dtor_encryptedDataKeys()),
+		StoredEncryptionContext: Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_storedEncryptionContext_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader).Dtor_storedEncryptionContext()),
+		EncryptionContext:       Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptionContext_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader).Dtor_encryptionContext()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsInput_tableName_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsInput_authActions_FromDafny(input interface{}) []awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthItem {
+	fieldValue := make([]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthItem, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsInput_headerBytes_FromDafny(input interface{}) []byte {
+	return func() []byte {
+		if input == nil {
+			return nil
+		}
+		a := input.(dafny.Sequence).ToArray().(dafny.GoNativeArray)
+		b := make([]byte, 0, a.Length())
+		for i := uint32(0); i < a.Length(); i++ {
+			b = append(b, a.Select(i).(byte))
+		}
+		return b
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsOutput_cryptoActions_FromDafny(input interface{}) []awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoItem {
+	fieldValue := make([]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoItem, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredEncryptionException_message_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes/enums.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes/enums.go
new file mode 100644
index 000000000..bf38d1e83
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes/enums.go
@@ -0,0 +1,35 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes
+
+type AuthenticateAction string
+
+const (
+	AuthenticateActionSign      AuthenticateAction = "SIGN"
+	AuthenticateActionDoNotSign AuthenticateAction = "DO_NOT_SIGN"
+)
+
+func (AuthenticateAction) Values() []AuthenticateAction {
+	return []AuthenticateAction{
+		"SIGN",
+		"DO_NOT_SIGN",
+	}
+}
+
+type CryptoAction string
+
+const (
+	CryptoActionEncryptAndSign                    CryptoAction = "ENCRYPT_AND_SIGN"
+	CryptoActionSignAndIncludeInEncryptionContext CryptoAction = "SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT"
+	CryptoActionSignOnly                          CryptoAction = "SIGN_ONLY"
+	CryptoActionDoNothing                         CryptoAction = "DO_NOTHING"
+)
+
+func (CryptoAction) Values() []CryptoAction {
+	return []CryptoAction{
+		"ENCRYPT_AND_SIGN",
+		"SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT",
+		"SIGN_ONLY",
+		"DO_NOTHING",
+	}
+}
diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes/errors.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes/errors.go
new file mode 100644
index 000000000..ba37c71a0
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes/errors.go
@@ -0,0 +1,17 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes
+
+import (
+	"fmt"
+)
+
+type StructuredEncryptionException struct {
+	StructuredEncryptionBaseException
+	Message           string
+	ErrorCodeOverride *string
+}
+
+func (e StructuredEncryptionException) Error() string {
+	return fmt.Sprintf("%s: %s", e.ErrorCodeOverride, e.Message)
+}
diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes/types.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes/types.go
new file mode 100644
index 000000000..2401b2204
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes/types.go
@@ -0,0 +1,615 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes
+
+import (
+	"fmt"
+	"unicode/utf8"
+
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes"
+)
+
+type StructuredDataTerminal struct {
+	TypeId []byte
+
+	Value []byte
+}
+
+func (input StructuredDataTerminal) Validate() error {
+	if len(input.TypeId) < 2 {
+		return fmt.Errorf("TerminalTypeId has a minimum length of 2 but has the length of %d.", len(input.TypeId))
+	}
+	if len(input.TypeId) > 2 {
+		return fmt.Errorf("TerminalTypeId has a maximum length of 2 but has the length of %d.", len(input.TypeId))
+	}
+
+	return nil
+}
+
+type StructureSegment struct {
+	Key string
+}
+
+func (input StructureSegment) Validate() error {
+
+	return nil
+}
+
+type AuthItem struct {
+	Action AuthenticateAction
+
+	Data StructuredDataTerminal
+
+	Key []PathSegment
+}
+
+func (input AuthItem) Validate() error {
+	if input.Data.Validate() != nil {
+		return input.Data.Validate()
+	}
+	if input.Key == nil {
+		return fmt.Errorf("input.Key is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthItem_key_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthItem_key_Validate()
+	}
+
+	return nil
+}
+
+func (input AuthItem) Aws_cryptography_dbEncryptionSdk_structuredEncryption_Path_member_Validate(Value PathSegment) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *PathSegmentMembermember:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input AuthItem) Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthItem_key_Validate() error {
+	for _, item := range input.Key {
+		if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_Path_member_Validate(item) != nil {
+			return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_Path_member_Validate(item)
+		}
+	}
+
+	return nil
+}
+
+type CryptoItem struct {
+	Action CryptoAction
+
+	Data StructuredDataTerminal
+
+	Key []PathSegment
+}
+
+func (input CryptoItem) Validate() error {
+	if input.Data.Validate() != nil {
+		return input.Data.Validate()
+	}
+	if input.Key == nil {
+		return fmt.Errorf("input.Key is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoItem_key_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoItem_key_Validate()
+	}
+
+	return nil
+}
+
+func (input CryptoItem) Aws_cryptography_dbEncryptionSdk_structuredEncryption_Path_member_Validate(Value PathSegment) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *PathSegmentMembermember:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input CryptoItem) Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoItem_key_Validate() error {
+	for _, item := range input.Key {
+		if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_Path_member_Validate(item) != nil {
+			return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_Path_member_Validate(item)
+		}
+	}
+
+	return nil
+}
+
+type DecryptPathStructureInput struct {
+	Cmm awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsManager
+
+	EncryptedStructure []AuthItem
+
+	TableName string
+
+	EncryptionContext map[string]string
+}
+
+func (input DecryptPathStructureInput) Validate() error {
+	if input.EncryptedStructure == nil {
+		return fmt.Errorf("input.EncryptedStructure is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_encryptedStructure_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_encryptedStructure_Validate()
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_encryptionContext_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_encryptionContext_Validate()
+	}
+
+	return nil
+}
+
+func (input DecryptPathStructureInput) Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_encryptedStructure_Validate() error {
+	for _, item := range input.EncryptedStructure {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+func (input DecryptPathStructureInput) Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_encryptionContext_Validate() error {
+	for key, value := range input.EncryptionContext {
+		if !utf8.ValidString(key) {
+			return fmt.Errorf("Invalid UTF bytes %s ", key)
+		}
+		if !utf8.ValidString(value) {
+			return fmt.Errorf("Invalid UTF bytes %s ", value)
+		}
+	}
+
+	return nil
+}
+
+type ParsedHeader struct {
+	AlgorithmSuiteId awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId
+
+	EncryptedDataKeys []awscryptographymaterialproviderssmithygeneratedtypes.EncryptedDataKey
+
+	EncryptionContext map[string]string
+
+	StoredEncryptionContext map[string]string
+}
+
+func (input ParsedHeader) Validate() error {
+	if input.EncryptedDataKeys == nil {
+		return fmt.Errorf("input.EncryptedDataKeys is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptedDataKeys_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptedDataKeys_Validate()
+	}
+	if input.EncryptionContext == nil {
+		return fmt.Errorf("input.EncryptionContext is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptionContext_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptionContext_Validate()
+	}
+	if input.StoredEncryptionContext == nil {
+		return fmt.Errorf("input.StoredEncryptionContext is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_storedEncryptionContext_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_storedEncryptionContext_Validate()
+	}
+
+	return nil
+}
+
+func (input ParsedHeader) Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptedDataKeys_Validate() error {
+	for _, item := range input.EncryptedDataKeys {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+func (input ParsedHeader) Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptionContext_Validate() error {
+	for key, value := range input.EncryptionContext {
+		if !utf8.ValidString(key) {
+			return fmt.Errorf("Invalid UTF bytes %s ", key)
+		}
+		if !utf8.ValidString(value) {
+			return fmt.Errorf("Invalid UTF bytes %s ", value)
+		}
+	}
+
+	return nil
+}
+func (input ParsedHeader) Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_storedEncryptionContext_Validate() error {
+	for key, value := range input.StoredEncryptionContext {
+		if !utf8.ValidString(key) {
+			return fmt.Errorf("Invalid UTF bytes %s ", key)
+		}
+		if !utf8.ValidString(value) {
+			return fmt.Errorf("Invalid UTF bytes %s ", value)
+		}
+	}
+
+	return nil
+}
+
+type DecryptPathStructureOutput struct {
+	ParsedHeader ParsedHeader
+
+	PlaintextStructure []CryptoItem
+}
+
+func (input DecryptPathStructureOutput) Validate() error {
+	if input.ParsedHeader.Validate() != nil {
+		return input.ParsedHeader.Validate()
+	}
+	if input.PlaintextStructure == nil {
+		return fmt.Errorf("input.PlaintextStructure is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureOutput_plaintextStructure_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureOutput_plaintextStructure_Validate()
+	}
+
+	return nil
+}
+
+func (input DecryptPathStructureOutput) Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureOutput_plaintextStructure_Validate() error {
+	for _, item := range input.PlaintextStructure {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+
+type DecryptStructureInput struct {
+	AuthenticateSchema map[string]AuthenticateAction
+
+	Cmm awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsManager
+
+	EncryptedStructure map[string]StructuredDataTerminal
+
+	TableName string
+
+	EncryptionContext map[string]string
+}
+
+func (input DecryptStructureInput) Validate() error {
+	if input.AuthenticateSchema == nil {
+		return fmt.Errorf("input.AuthenticateSchema is required but has a nil value.")
+	}
+	if input.EncryptedStructure == nil {
+		return fmt.Errorf("input.EncryptedStructure is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_encryptedStructure_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_encryptedStructure_Validate()
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_encryptionContext_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_encryptionContext_Validate()
+	}
+
+	return nil
+}
+
+func (input DecryptStructureInput) Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_encryptedStructure_Validate() error {
+	for _, value := range input.EncryptedStructure {
+		if value.Validate() != nil {
+			return value.Validate()
+		}
+	}
+
+	return nil
+}
+func (input DecryptStructureInput) Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_encryptionContext_Validate() error {
+	for key, value := range input.EncryptionContext {
+		if !utf8.ValidString(key) {
+			return fmt.Errorf("Invalid UTF bytes %s ", key)
+		}
+		if !utf8.ValidString(value) {
+			return fmt.Errorf("Invalid UTF bytes %s ", value)
+		}
+	}
+
+	return nil
+}
+
+type DecryptStructureOutput struct {
+	CryptoSchema map[string]CryptoAction
+
+	ParsedHeader ParsedHeader
+
+	PlaintextStructure map[string]StructuredDataTerminal
+}
+
+func (input DecryptStructureOutput) Validate() error {
+	if input.CryptoSchema == nil {
+		return fmt.Errorf("input.CryptoSchema is required but has a nil value.")
+	}
+	if input.ParsedHeader.Validate() != nil {
+		return input.ParsedHeader.Validate()
+	}
+	if input.PlaintextStructure == nil {
+		return fmt.Errorf("input.PlaintextStructure is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureOutput_plaintextStructure_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureOutput_plaintextStructure_Validate()
+	}
+
+	return nil
+}
+
+func (input DecryptStructureOutput) Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureOutput_plaintextStructure_Validate() error {
+	for _, value := range input.PlaintextStructure {
+		if value.Validate() != nil {
+			return value.Validate()
+		}
+	}
+
+	return nil
+}
+
+type EncryptPathStructureInput struct {
+	Cmm awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsManager
+
+	PlaintextStructure []CryptoItem
+
+	TableName string
+
+	AlgorithmSuiteId *awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId
+
+	EncryptionContext map[string]string
+}
+
+func (input EncryptPathStructureInput) Validate() error {
+	if input.PlaintextStructure == nil {
+		return fmt.Errorf("input.PlaintextStructure is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_plaintextStructure_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_plaintextStructure_Validate()
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_encryptionContext_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_encryptionContext_Validate()
+	}
+
+	return nil
+}
+
+func (input EncryptPathStructureInput) Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_plaintextStructure_Validate() error {
+	for _, item := range input.PlaintextStructure {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+func (input EncryptPathStructureInput) Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_encryptionContext_Validate() error {
+	for key, value := range input.EncryptionContext {
+		if !utf8.ValidString(key) {
+			return fmt.Errorf("Invalid UTF bytes %s ", key)
+		}
+		if !utf8.ValidString(value) {
+			return fmt.Errorf("Invalid UTF bytes %s ", value)
+		}
+	}
+
+	return nil
+}
+
+type EncryptPathStructureOutput struct {
+	EncryptedStructure []CryptoItem
+
+	ParsedHeader ParsedHeader
+}
+
+func (input EncryptPathStructureOutput) Validate() error {
+	if input.EncryptedStructure == nil {
+		return fmt.Errorf("input.EncryptedStructure is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureOutput_encryptedStructure_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureOutput_encryptedStructure_Validate()
+	}
+	if input.ParsedHeader.Validate() != nil {
+		return input.ParsedHeader.Validate()
+	}
+
+	return nil
+}
+
+func (input EncryptPathStructureOutput) Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureOutput_encryptedStructure_Validate() error {
+	for _, item := range input.EncryptedStructure {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+
+type EncryptStructureInput struct {
+	Cmm awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsManager
+
+	CryptoSchema map[string]CryptoAction
+
+	PlaintextStructure map[string]StructuredDataTerminal
+
+	TableName string
+
+	AlgorithmSuiteId *awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId
+
+	EncryptionContext map[string]string
+}
+
+func (input EncryptStructureInput) Validate() error {
+	if input.CryptoSchema == nil {
+		return fmt.Errorf("input.CryptoSchema is required but has a nil value.")
+	}
+	if input.PlaintextStructure == nil {
+		return fmt.Errorf("input.PlaintextStructure is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_plaintextStructure_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_plaintextStructure_Validate()
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_encryptionContext_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_encryptionContext_Validate()
+	}
+
+	return nil
+}
+
+func (input EncryptStructureInput) Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_plaintextStructure_Validate() error {
+	for _, value := range input.PlaintextStructure {
+		if value.Validate() != nil {
+			return value.Validate()
+		}
+	}
+
+	return nil
+}
+func (input EncryptStructureInput) Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_encryptionContext_Validate() error {
+	for key, value := range input.EncryptionContext {
+		if !utf8.ValidString(key) {
+			return fmt.Errorf("Invalid UTF bytes %s ", key)
+		}
+		if !utf8.ValidString(value) {
+			return fmt.Errorf("Invalid UTF bytes %s ", value)
+		}
+	}
+
+	return nil
+}
+
+type EncryptStructureOutput struct {
+	CryptoSchema map[string]CryptoAction
+
+	EncryptedStructure map[string]StructuredDataTerminal
+
+	ParsedHeader ParsedHeader
+}
+
+func (input EncryptStructureOutput) Validate() error {
+	if input.CryptoSchema == nil {
+		return fmt.Errorf("input.CryptoSchema is required but has a nil value.")
+	}
+	if input.EncryptedStructure == nil {
+		return fmt.Errorf("input.EncryptedStructure is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureOutput_encryptedStructure_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureOutput_encryptedStructure_Validate()
+	}
+	if input.ParsedHeader.Validate() != nil {
+		return input.ParsedHeader.Validate()
+	}
+
+	return nil
+}
+
+func (input EncryptStructureOutput) Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureOutput_encryptedStructure_Validate() error {
+	for _, value := range input.EncryptedStructure {
+		if value.Validate() != nil {
+			return value.Validate()
+		}
+	}
+
+	return nil
+}
+
+type ResolveAuthActionsInput struct {
+	AuthActions []AuthItem
+
+	HeaderBytes []byte
+
+	TableName string
+}
+
+func (input ResolveAuthActionsInput) Validate() error {
+	if input.AuthActions == nil {
+		return fmt.Errorf("input.AuthActions is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsInput_authActions_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsInput_authActions_Validate()
+	}
+
+	return nil
+}
+
+func (input ResolveAuthActionsInput) Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsInput_authActions_Validate() error {
+	for _, item := range input.AuthActions {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+
+type ResolveAuthActionsOutput struct {
+	CryptoActions []CryptoItem
+}
+
+func (input ResolveAuthActionsOutput) Validate() error {
+	if input.CryptoActions == nil {
+		return fmt.Errorf("input.CryptoActions is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsOutput_cryptoActions_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsOutput_cryptoActions_Validate()
+	}
+
+	return nil
+}
+
+func (input ResolveAuthActionsOutput) Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsOutput_cryptoActions_Validate() error {
+	for _, item := range input.CryptoActions {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+
+type AtomicPrimitivesReference struct {
+}
+
+func (input AtomicPrimitivesReference) Validate() error {
+
+	return nil
+}
+
+type StructuredEncryptionConfig struct {
+}
+
+func (input StructuredEncryptionConfig) Validate() error {
+
+	return nil
+}
+
+// PathSegmentMembermember
+type PathSegment interface {
+	isPathSegment()
+}
+
+type PathSegmentMembermember struct {
+	Value StructureSegment
+}
+
+func (*PathSegmentMembermember) isPathSegment() {}
+
+type StructuredEncryptionBaseException interface {
+	// This is a dummy method to allow type assertion since Go empty interfaces
+	// aren't useful for type assertion checks. No concrete class is expected to implement
+	// this method. This is also not exported.
+	interfaceBindingMethod()
+}
diff --git a/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes/unmodelled_errors.go b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes/unmodelled_errors.go
new file mode 100644
index 000000000..43a2adee7
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/ImplementationFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes/unmodelled_errors.go
@@ -0,0 +1,26 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes
+
+import (
+	"fmt"
+)
+
+type CollectionOfErrors struct {
+	StructuredEncryptionBaseException
+	ListOfErrors []error
+	Message      string
+}
+
+func (e CollectionOfErrors) Error() string {
+	return fmt.Sprintf("message: %s\n err %v", e.Message, e.ListOfErrors)
+}
+
+type OpaqueError struct {
+	StructuredEncryptionBaseException
+	ErrObject interface{}
+}
+
+func (e OpaqueError) Error() string {
+	return fmt.Sprintf("message: %v", e.ErrObject)
+}
diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/WrappedAwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorService/shim.go b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/WrappedAwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorService/shim.go
new file mode 100644
index 000000000..9018b4bb4
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/WrappedAwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorService/shim.go
@@ -0,0 +1,43 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package WrappedAwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorService
+
+import (
+	"context"
+
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated"
+)
+
+type Shim struct {
+	AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.IDynamoDbItemEncryptorClient
+	client *awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated.Client
+}
+
+func (_static *CompanionStruct_Default___) WrappedDynamoDbItemEncryptor(inputConfig AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DynamoDbItemEncryptorConfig) Wrappers.Result {
+	var nativeConfig = awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated.DynamoDbItemEncryptorConfig_FromDafny(inputConfig)
+	var nativeClient, nativeError = awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated.NewClient(nativeConfig)
+	if nativeError != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_Opaque_(nativeError))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(&Shim{client: nativeClient})
+}
+
+func (shim *Shim) EncryptItem(input AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated.EncryptItemInput_FromDafny(input)
+	var native_response, native_error = shim.client.EncryptItem(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated.EncryptItemOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) DecryptItem(input AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated.DecryptItemInput_FromDafny(input)
+	var native_response, native_error = shim.client.DecryptItem(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated.DecryptItemOutput_ToDafny(*native_response))
+}
diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/WrappedAwsCryptographyDbEncryptionSdkDynamoDbService/shim.go b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/WrappedAwsCryptographyDbEncryptionSdkDynamoDbService/shim.go
new file mode 100644
index 000000000..0124631c5
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/WrappedAwsCryptographyDbEncryptionSdkDynamoDbService/shim.go
@@ -0,0 +1,43 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package WrappedAwsCryptographyDbEncryptionSdkDynamoDbService
+
+import (
+	"context"
+
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygenerated"
+)
+
+type Shim struct {
+	AwsCryptographyDbEncryptionSdkDynamoDbTypes.IDynamoDbEncryptionClient
+	client *awscryptographydbencryptionsdkdynamodbsmithygenerated.Client
+}
+
+func (_static *CompanionStruct_Default___) WrappedDynamoDbEncryption(inputConfig AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbEncryptionConfig) Wrappers.Result {
+	var nativeConfig = awscryptographydbencryptionsdkdynamodbsmithygenerated.DynamoDbEncryptionConfig_FromDafny(inputConfig)
+	var nativeClient, nativeError = awscryptographydbencryptionsdkdynamodbsmithygenerated.NewClient(nativeConfig)
+	if nativeError != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_Opaque_(nativeError))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(&Shim{client: nativeClient})
+}
+
+func (shim *Shim) CreateDynamoDbEncryptionBranchKeyIdSupplier(input AwsCryptographyDbEncryptionSdkDynamoDbTypes.CreateDynamoDbEncryptionBranchKeyIdSupplierInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbsmithygenerated.CreateDynamoDbEncryptionBranchKeyIdSupplierInput_FromDafny(input)
+	var native_response, native_error = shim.client.CreateDynamoDbEncryptionBranchKeyIdSupplier(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbsmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbsmithygenerated.CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) GetEncryptedDataKeyDescription(input AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbsmithygenerated.GetEncryptedDataKeyDescriptionInput_FromDafny(input)
+	var native_response, native_error = shim.client.GetEncryptedDataKeyDescription(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbsmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbsmithygenerated.GetEncryptedDataKeyDescriptionOutput_ToDafny(*native_response))
+}
diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/WrappedAwsCryptographyDbEncryptionSdkDynamoDbTransformsService/shim.go b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/WrappedAwsCryptographyDbEncryptionSdkDynamoDbTransformsService/shim.go
new file mode 100644
index 000000000..41c6a6043
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/WrappedAwsCryptographyDbEncryptionSdkDynamoDbTransformsService/shim.go
@@ -0,0 +1,268 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package WrappedAwsCryptographyDbEncryptionSdkDynamoDbTransformsService
+
+import (
+	"context"
+
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbtransformssmithygenerated"
+)
+
+type Shim struct {
+	AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.IDynamoDbEncryptionTransformsClient
+	client *awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Client
+}
+
+func (_static *CompanionStruct_Default___) WrappedDynamoDbEncryptionTransforms(inputConfig AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTablesEncryptionConfig) Wrappers.Result {
+	var nativeConfig = awscryptographydbencryptionsdkdynamodbsmithygenerated.awscryptographydbencryptionsdkdynamodbsmithygenerated.DynamoDbTablesEncryptionConfig_FromDafny(inputConfig)
+	var nativeClient, nativeError = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.NewClient(nativeConfig)
+	if nativeError != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_Opaque_(nativeError))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(&Shim{client: nativeClient})
+}
+
+func (shim *Shim) PutItemInputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemInputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.PutItemInputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.PutItemInputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.PutItemInputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) PutItemOutputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemOutputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.PutItemOutputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.PutItemOutputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.PutItemOutputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) GetItemInputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemInputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.GetItemInputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.GetItemInputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.GetItemInputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) GetItemOutputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemOutputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.GetItemOutputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.GetItemOutputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.GetItemOutputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) BatchWriteItemInputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemInputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.BatchWriteItemInputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.BatchWriteItemInputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.BatchWriteItemInputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) BatchWriteItemOutputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemOutputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.BatchWriteItemOutputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.BatchWriteItemOutputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.BatchWriteItemOutputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) BatchGetItemInputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemInputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.BatchGetItemInputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.BatchGetItemInputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.BatchGetItemInputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) BatchGetItemOutputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemOutputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.BatchGetItemOutputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.BatchGetItemOutputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.BatchGetItemOutputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) ScanInputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanInputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.ScanInputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.ScanInputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.ScanInputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) ScanOutputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanOutputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.ScanOutputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.ScanOutputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.ScanOutputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) QueryInputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryInputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.QueryInputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.QueryInputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.QueryInputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) QueryOutputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryOutputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.QueryOutputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.QueryOutputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.QueryOutputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) TransactWriteItemsInputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsInputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.TransactWriteItemsInputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.TransactWriteItemsInputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.TransactWriteItemsInputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) TransactWriteItemsOutputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsOutputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.TransactWriteItemsOutputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.TransactWriteItemsOutputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.TransactWriteItemsOutputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) UpdateItemInputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemInputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.UpdateItemInputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.UpdateItemInputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.UpdateItemInputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) UpdateItemOutputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemOutputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.UpdateItemOutputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.UpdateItemOutputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.UpdateItemOutputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) DeleteItemInputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemInputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.DeleteItemInputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.DeleteItemInputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.DeleteItemInputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) DeleteItemOutputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemOutputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.DeleteItemOutputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.DeleteItemOutputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.DeleteItemOutputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) TransactGetItemsInputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsInputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.TransactGetItemsInputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.TransactGetItemsInputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.TransactGetItemsInputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) TransactGetItemsOutputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsOutputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.TransactGetItemsOutputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.TransactGetItemsOutputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.TransactGetItemsOutputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) ExecuteStatementInputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementInputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.ExecuteStatementInputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.ExecuteStatementInputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.ExecuteStatementInputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) ExecuteStatementOutputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementOutputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.ExecuteStatementOutputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.ExecuteStatementOutputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.ExecuteStatementOutputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) BatchExecuteStatementInputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementInputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.BatchExecuteStatementInputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.BatchExecuteStatementInputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.BatchExecuteStatementInputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) BatchExecuteStatementOutputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementOutputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.BatchExecuteStatementOutputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.BatchExecuteStatementOutputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.BatchExecuteStatementOutputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) ExecuteTransactionInputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionInputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.ExecuteTransactionInputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.ExecuteTransactionInputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.ExecuteTransactionInputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) ExecuteTransactionOutputTransform(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionOutputTransformInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.ExecuteTransactionOutputTransformInput_FromDafny(input)
+	var native_response, native_error = shim.client.ExecuteTransactionOutputTransform(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.ExecuteTransactionOutputTransformOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) ResolveAttributes(input AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ResolveAttributesInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.ResolveAttributesInput_FromDafny(input)
+	var native_response, native_error = shim.client.ResolveAttributes(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.ResolveAttributesOutput_ToDafny(*native_response))
+}
diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/WrappedAwsCryptographyDbEncryptionSdkStructuredEncryptionService/shim.go b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/WrappedAwsCryptographyDbEncryptionSdkStructuredEncryptionService/shim.go
new file mode 100644
index 000000000..6d2ddf5e4
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/WrappedAwsCryptographyDbEncryptionSdkStructuredEncryptionService/shim.go
@@ -0,0 +1,70 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package WrappedAwsCryptographyDbEncryptionSdkStructuredEncryptionService
+
+import (
+	"context"
+
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated"
+)
+
+type Shim struct {
+	AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.IStructuredEncryptionClient
+	client *awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.Client
+}
+
+func (_static *CompanionStruct_Default___) WrappedStructuredEncryption(inputConfig AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredEncryptionConfig) Wrappers.Result {
+	var nativeConfig = awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.StructuredEncryptionConfig_FromDafny(inputConfig)
+	var nativeClient, nativeError = awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.NewClient(nativeConfig)
+	if nativeError != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_Error_.Create_Opaque_(nativeError))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(&Shim{client: nativeClient})
+}
+
+func (shim *Shim) EncryptStructure(input AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptStructureInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.EncryptStructureInput_FromDafny(input)
+	var native_response, native_error = shim.client.EncryptStructure(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.EncryptStructureOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) DecryptStructure(input AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptStructureInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.DecryptStructureInput_FromDafny(input)
+	var native_response, native_error = shim.client.DecryptStructure(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.DecryptStructureOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) EncryptPathStructure(input AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptPathStructureInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.EncryptPathStructureInput_FromDafny(input)
+	var native_response, native_error = shim.client.EncryptPathStructure(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.EncryptPathStructureOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) DecryptPathStructure(input AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptPathStructureInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.DecryptPathStructureInput_FromDafny(input)
+	var native_response, native_error = shim.client.DecryptPathStructure(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.DecryptPathStructureOutput_ToDafny(*native_response))
+}
+
+func (shim *Shim) ResolveAuthActions(input AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ResolveAuthActionsInput) Wrappers.Result {
+	var native_request = awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.ResolveAuthActionsInput_FromDafny(input)
+	var native_response, native_error = shim.client.ResolveAuthActions(context.Background(), native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.ResolveAuthActionsOutput_ToDafny(*native_response))
+}
diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated/api_client.go b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated/api_client.go
new file mode 100644
index 000000000..00c350137
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated/api_client.go
@@ -0,0 +1,68 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated
+
+import (
+	"context"
+
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/DynamoDbItemEncryptor"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes"
+)
+
+type Client struct {
+	DafnyClient AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.IDynamoDbItemEncryptorClient
+}
+
+func NewClient(clientConfig awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DynamoDbItemEncryptorConfig) (*Client, error) {
+	var dafnyConfig = DynamoDbItemEncryptorConfig_ToDafny(clientConfig)
+	var dafny_response = DynamoDbItemEncryptor.Companion_Default___.DynamoDbItemEncryptor(dafnyConfig)
+	if dafny_response.Is_Failure() {
+		panic("Client construction failed. This should never happen")
+	}
+	var dafnyClient = dafny_response.Extract().(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.IDynamoDbItemEncryptorClient)
+	client := &Client{dafnyClient}
+	return client, nil
+}
+
+func (client *Client) EncryptItem(ctx context.Context, params awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.EncryptItemInput) (*awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.EncryptItemOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemInput = EncryptItemInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.EncryptItem(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = EncryptItemOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) DecryptItem(ctx context.Context, params awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DecryptItemInput) (*awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DecryptItemOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemInput = DecryptItemInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.DecryptItem(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = DecryptItemOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemOutput))
+	return &native_response, nil
+
+}
diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated/to_dafny.go b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated/to_dafny.go
new file mode 100644
index 000000000..b153d67b2
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated/to_dafny.go
@@ -0,0 +1,437 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated
+
+import (
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/comamazonawsdynamodbsmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/awscryptographyprimitivessmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/awscryptographyprimitivessmithygeneratedtypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygenerated"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes"
+	dynamodbtypes "github.com/aws/aws-sdk-go-v2/service/dynamodb/types"
+	"github.com/aws/smithy-go"
+	"github.com/dafny-lang/DafnyRuntimeGo/v4/dafny"
+)
+
+func DecryptItemInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DecryptItemInput) AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_DecryptItemInput_.Create_DecryptItemInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemInput_encryptedItem_ToDafny(nativeInput.EncryptedItem))
+	}()
+
+}
+
+func DecryptItemOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DecryptItemOutput) AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_DecryptItemOutput_.Create_DecryptItemOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemOutput_plaintextItem_ToDafny(nativeOutput.PlaintextItem), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemOutput_parsedHeader_ToDafny(nativeOutput.ParsedHeader))
+	}()
+
+}
+
+func EncryptItemInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.EncryptItemInput) AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_EncryptItemInput_.Create_EncryptItemInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemInput_plaintextItem_ToDafny(nativeInput.PlaintextItem))
+	}()
+
+}
+
+func EncryptItemOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.EncryptItemOutput) AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_EncryptItemOutput_.Create_EncryptItemOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemOutput_encryptedItem_ToDafny(nativeOutput.EncryptedItem), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemOutput_parsedHeader_ToDafny(nativeOutput.ParsedHeader))
+	}()
+
+}
+
+func DynamoDbItemEncryptorException_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DynamoDbItemEncryptorException) AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_DynamoDbItemEncryptorException_(Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorException_message_ToDafny(nativeInput.Message))
+	}()
+
+}
+
+func CollectionOfErrors_Input_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.CollectionOfErrors) AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error {
+	var e []interface{}
+	for _, i2 := range nativeInput.ListOfErrors {
+		e = append(e, Error_ToDafny(i2))
+	}
+	return AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_CollectionOfErrors_(dafny.SeqOf(e...), func() dafny.Sequence {
+		res, err := UTF8.DecodeFromNativeGoByteArray([]byte(nativeInput.Message))
+		if err != nil {
+			panic("invalid utf8 input provided")
+		}
+		return res
+	}())
+}
+func OpaqueError_Input_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.OpaqueError) AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error {
+	return AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_Opaque_(nativeInput.ErrObject)
+}
+
+func Error_ToDafny(err error) AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error {
+	switch err.(type) {
+	// Service Errors
+	case awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DynamoDbItemEncryptorException:
+		return DynamoDbItemEncryptorException_ToDafny(err.(awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DynamoDbItemEncryptorException))
+
+	//DependentErrors
+	case awscryptographyprimitivessmithygeneratedtypes.AwsCryptographicPrimitivesBaseException:
+		return AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(awscryptographyprimitivessmithygenerated.Error_ToDafny(err))
+
+	case awscryptographymaterialproviderssmithygeneratedtypes.AwsCryptographicMaterialProvidersBaseException:
+		return AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_AwsCryptographyMaterialProviders_(awscryptographymaterialproviderssmithygenerated.Error_ToDafny(err))
+
+	case awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredEncryptionBaseException:
+		return AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkStructuredEncryption_(awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.Error_ToDafny(err))
+
+	case awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbEncryptionBaseException:
+		return AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkDynamoDb_(awscryptographydbencryptionsdkdynamodbsmithygenerated.Error_ToDafny(err))
+
+	case *smithy.OperationError:
+		if err.(*smithy.OperationError).Service() == "DynamoDB" {
+			DynamoDBError := comamazonawsdynamodbsmithygenerated.Error_ToDafny(err)
+			return AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_ComAmazonawsDynamodb_(DynamoDBError)
+		}
+		return AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_Opaque_(err)
+
+	case smithy.APIError:
+		DynamoDBError := comamazonawsdynamodbsmithygenerated.Error_ToDafny(err)
+		if !DynamoDBError.Is_OpaqueWithText() {
+			return AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_ComAmazonawsDynamodb_(DynamoDBError)
+		}
+		return AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_Error_.Create_Opaque_(err)
+
+	//Unmodelled Errors
+	case awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.CollectionOfErrors:
+		return CollectionOfErrors_Input_ToDafny(err.(awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.CollectionOfErrors))
+
+	default:
+		error, ok := err.(awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.OpaqueError)
+		if !ok {
+			panic("Error is not an OpaqueError")
+		}
+		return OpaqueError_Input_ToDafny(error)
+	}
+}
+
+func DynamoDbItemEncryptorConfig_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DynamoDbItemEncryptorConfig) AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DynamoDbItemEncryptorConfig {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DynamoDbItemEncryptorConfig {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_DynamoDbItemEncryptorConfig_.Create_DynamoDbItemEncryptorConfig_(Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_logicalTableName_ToDafny(nativeInput.LogicalTableName), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_partitionKeyName_ToDafny(nativeInput.PartitionKeyName), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_sortKeyName_ToDafny(nativeInput.SortKeyName), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_attributeActionsOnEncrypt_ToDafny(nativeInput.AttributeActionsOnEncrypt), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_allowedUnsignedAttributes_ToDafny(nativeInput.AllowedUnsignedAttributes), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_allowedUnsignedAttributePrefix_ToDafny(nativeInput.AllowedUnsignedAttributePrefix), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_algorithmSuiteId_ToDafny(nativeInput.AlgorithmSuiteId), func() Wrappers.Option {
+			if (nativeInput.Keyring) == nil {
+				return Wrappers.Companion_Option_.Create_None_()
+			}
+			return Wrappers.Companion_Option_.Create_Some_(awscryptographymaterialproviderssmithygenerated.Keyring_ToDafny(nativeInput.Keyring))
+		}(), func() Wrappers.Option {
+			if (nativeInput.Cmm) == nil {
+				return Wrappers.Companion_Option_.Create_None_()
+			}
+			return Wrappers.Companion_Option_.Create_Some_(awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsManager_ToDafny(nativeInput.Cmm))
+		}(), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_legacyOverride_ToDafny(nativeInput.LegacyOverride), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_plaintextOverride_ToDafny(nativeInput.PlaintextOverride))
+	}()
+
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemInput_encryptedItem_ToDafny(input map[string]dynamodbtypes.AttributeValue) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_key_ToDafny(key), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemOutput_plaintextItem_ToDafny(input map[string]dynamodbtypes.AttributeValue) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_key_ToDafny(key), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemOutput_parsedHeader_ToDafny(input *awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.ParsedHeader) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_ParsedHeader_.Create_ParsedHeader_(Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_attributeActionsOnEncrypt_ToDafny(input.AttributeActionsOnEncrypt), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_algorithmSuiteId_ToDafny(input.AlgorithmSuiteId), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptedDataKeys_ToDafny(input.EncryptedDataKeys), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_storedEncryptionContext_ToDafny(input.StoredEncryptionContext), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptionContext_ToDafny(input.EncryptionContext), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_selectorContext_ToDafny(input.SelectorContext)))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_attributeActionsOnEncrypt_ToDafny(input map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(awscryptographydbencryptionsdkdynamodbsmithygenerated.Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_key_ToDafny(key), awscryptographydbencryptionsdkdynamodbsmithygenerated.Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_algorithmSuiteId_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId) AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId {
+	return func() AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId {
+
+		var index int
+		for _, enumVal := range input.Values() {
+			index++
+			if enumVal == input {
+				break
+			}
+			if index == len(input.Values()) {
+				panic("Input value did not found in enum values")
+			}
+
+		}
+		var enum interface{}
+		for allEnums, i := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_DBEAlgorithmSuiteId_{}.AllSingletonConstructors()), 0; i < index; i++ {
+			var ok bool
+			enum, ok = allEnums()
+			if !ok {
+				break
+			}
+		}
+		return enum.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptedDataKeys_ToDafny(input []awscryptographymaterialproviderssmithygeneratedtypes.EncryptedDataKey) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptedDataKeyList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return dafny.SeqOf(fieldValue...)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_storedEncryptionContext_ToDafny(input map[string]string) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_key_ToDafny(key), awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptionContext_ToDafny(input map[string]string) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_key_ToDafny(key), awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_selectorContext_ToDafny(input map[string]dynamodbtypes.AttributeValue) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_Key_key_ToDafny(key), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_Key_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemInput_plaintextItem_ToDafny(input map[string]dynamodbtypes.AttributeValue) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_key_ToDafny(key), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemOutput_encryptedItem_ToDafny(input map[string]dynamodbtypes.AttributeValue) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_key_ToDafny(key), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemOutput_parsedHeader_ToDafny(input *awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.ParsedHeader) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Companion_ParsedHeader_.Create_ParsedHeader_(Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_attributeActionsOnEncrypt_ToDafny(input.AttributeActionsOnEncrypt), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_algorithmSuiteId_ToDafny(input.AlgorithmSuiteId), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptedDataKeys_ToDafny(input.EncryptedDataKeys), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_storedEncryptionContext_ToDafny(input.StoredEncryptionContext), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptionContext_ToDafny(input.EncryptionContext), Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_selectorContext_ToDafny(input.SelectorContext)))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorException_message_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_logicalTableName_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_partitionKeyName_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_sortKeyName_ToDafny(input *string) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_attributeActionsOnEncrypt_ToDafny(input map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(awscryptographydbencryptionsdkdynamodbsmithygenerated.Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_key_ToDafny(key), awscryptographydbencryptionsdkdynamodbsmithygenerated.Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_allowedUnsignedAttributes_ToDafny(input []string) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeNameList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_allowedUnsignedAttributePrefix_ToDafny(input *string) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_algorithmSuiteId_ToDafny(input *awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		var index int
+		for _, enumVal := range input.Values() {
+			index++
+			if enumVal == *input {
+				break
+			}
+
+		}
+		var enum interface{}
+		for allEnums, i := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_DBEAlgorithmSuiteId_{}.AllSingletonConstructors()), 0; i < index; i++ {
+			var ok bool
+			enum, ok = allEnums()
+			if !ok {
+				break
+			}
+		}
+		return Wrappers.Companion_Option_.Create_Some_(enum.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_legacyOverride_ToDafny(input *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyOverride) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_LegacyOverride_.Create_LegacyOverride_(awscryptographydbencryptionsdkdynamodbsmithygenerated.Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_policy_ToDafny(input.Policy), awscryptographydbencryptionsdkdynamodbsmithygenerated.LegacyDynamoDbEncryptor_ToDafny(input.Encryptor), awscryptographydbencryptionsdkdynamodbsmithygenerated.Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_attributeActionsOnEncrypt_ToDafny(input.AttributeActionsOnEncrypt), awscryptographydbencryptionsdkdynamodbsmithygenerated.Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_defaultAttributeFlag_ToDafny(input.DefaultAttributeFlag)))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_plaintextOverride_ToDafny(input *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PlaintextOverride) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		var index int
+		for _, enumVal := range input.Values() {
+			index++
+			if enumVal == *input {
+				break
+			}
+
+		}
+		var enum interface{}
+		for allEnums, i := dafny.Iterate(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_PlaintextOverride_{}.AllSingletonConstructors()), 0; i < index; i++ {
+			var ok bool
+			enum, ok = allEnums()
+			if !ok {
+				break
+			}
+		}
+		return Wrappers.Companion_Option_.Create_Some_(enum.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride))
+	}()
+}
diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated/to_native.go b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated/to_native.go
new file mode 100644
index 000000000..8262392cc
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated/to_native.go
@@ -0,0 +1,447 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated
+
+import (
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/comamazonawsdynamodbsmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/awscryptographyprimitivessmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygenerated"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes"
+	dynamodbtypes "github.com/aws/aws-sdk-go-v2/service/dynamodb/types"
+	"github.com/dafny-lang/DafnyRuntimeGo/v4/dafny"
+)
+
+func DecryptItemInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemInput) awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DecryptItemInput {
+
+	return awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DecryptItemInput{EncryptedItem: Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemInput_encryptedItem_FromDafny(dafnyInput.Dtor_encryptedItem())}
+
+}
+
+func DecryptItemOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DecryptItemOutput) awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DecryptItemOutput {
+
+	return awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DecryptItemOutput{PlaintextItem: Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemOutput_plaintextItem_FromDafny(dafnyOutput.Dtor_plaintextItem()),
+		ParsedHeader: Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemOutput_parsedHeader_FromDafny(dafnyOutput.Dtor_parsedHeader().UnwrapOr(nil)),
+	}
+
+}
+
+func EncryptItemInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemInput) awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.EncryptItemInput {
+
+	return awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.EncryptItemInput{PlaintextItem: Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemInput_plaintextItem_FromDafny(dafnyInput.Dtor_plaintextItem())}
+
+}
+
+func EncryptItemOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.EncryptItemOutput) awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.EncryptItemOutput {
+
+	return awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.EncryptItemOutput{EncryptedItem: Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemOutput_encryptedItem_FromDafny(dafnyOutput.Dtor_encryptedItem()),
+		ParsedHeader: Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemOutput_parsedHeader_FromDafny(dafnyOutput.Dtor_parsedHeader().UnwrapOr(nil)),
+	}
+
+}
+
+func DynamoDbItemEncryptorException_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error) awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DynamoDbItemEncryptorException {
+	return awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DynamoDbItemEncryptorException{Message: Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorException_message_FromDafny(dafnyOutput.Dtor_message())}
+
+}
+
+func CollectionOfErrors_Output_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error) awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.CollectionOfErrors {
+	listOfErrors := dafnyOutput.Dtor_list()
+	message := dafnyOutput.Dtor_message()
+	t := awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.CollectionOfErrors{}
+	for i := dafny.Iterate(listOfErrors); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		err := val.(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error)
+		t.ListOfErrors = append(t.ListOfErrors, Error_FromDafny(err))
+
+	}
+	t.Message = func() string {
+		a := UTF8.Encode(message.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+		return s
+	}()
+	return t
+}
+func OpaqueError_Output_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error) awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.OpaqueError {
+	return awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.OpaqueError{
+		ErrObject: dafnyOutput.Dtor_obj(),
+	}
+}
+
+func Error_FromDafny(err AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.Error) error {
+	// Service Errors
+	if err.Is_DynamoDbItemEncryptorException() {
+		return DynamoDbItemEncryptorException_FromDafny(err)
+	}
+
+	//DependentErrors
+	if err.Is_AwsCryptographyPrimitives() {
+		return awscryptographyprimitivessmithygenerated.Error_FromDafny(err.Dtor_AwsCryptographyPrimitives())
+	}
+
+	if err.Is_ComAmazonawsDynamodb() {
+		return comamazonawsdynamodbsmithygenerated.Error_FromDafny(err.Dtor_ComAmazonawsDynamodb())
+	}
+
+	if err.Is_AwsCryptographyMaterialProviders() {
+		return awscryptographymaterialproviderssmithygenerated.Error_FromDafny(err.Dtor_AwsCryptographyMaterialProviders())
+	}
+
+	if err.Is_AwsCryptographyDbEncryptionSdkStructuredEncryption() {
+		return awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.Error_FromDafny(err.Dtor_AwsCryptographyDbEncryptionSdkStructuredEncryption())
+	}
+
+	if err.Is_AwsCryptographyDbEncryptionSdkDynamoDb() {
+		return awscryptographydbencryptionsdkdynamodbsmithygenerated.Error_FromDafny(err.Dtor_AwsCryptographyDbEncryptionSdkDynamoDb())
+	}
+
+	//Unmodelled Errors
+	if err.Is_CollectionOfErrors() {
+		return CollectionOfErrors_Output_FromDafny(err)
+	}
+
+	return OpaqueError_Output_FromDafny(err)
+}
+
+func DynamoDbItemEncryptorConfig_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.DynamoDbItemEncryptorConfig) awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DynamoDbItemEncryptorConfig {
+	return awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DynamoDbItemEncryptorConfig{LogicalTableName: Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_logicalTableName_FromDafny(dafnyOutput.Dtor_logicalTableName()),
+		PartitionKeyName:               Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_partitionKeyName_FromDafny(dafnyOutput.Dtor_partitionKeyName()),
+		SortKeyName:                    Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_sortKeyName_FromDafny(dafnyOutput.Dtor_sortKeyName().UnwrapOr(nil)),
+		AttributeActionsOnEncrypt:      Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_attributeActionsOnEncrypt_FromDafny(dafnyOutput.Dtor_attributeActionsOnEncrypt()),
+		AllowedUnsignedAttributes:      Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_allowedUnsignedAttributes_FromDafny(dafnyOutput.Dtor_allowedUnsignedAttributes().UnwrapOr(nil)),
+		AllowedUnsignedAttributePrefix: Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_allowedUnsignedAttributePrefix_FromDafny(dafnyOutput.Dtor_allowedUnsignedAttributePrefix().UnwrapOr(nil)),
+		AlgorithmSuiteId:               Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_algorithmSuiteId_FromDafny(dafnyOutput.Dtor_algorithmSuiteId().UnwrapOr(nil)),
+		Keyring: func() awscryptographymaterialproviderssmithygeneratedtypes.IKeyring {
+			if dafnyOutput.Dtor_keyring().UnwrapOr(nil) == nil {
+				return nil
+			}
+			return awscryptographymaterialproviderssmithygenerated.Keyring_FromDafny(dafnyOutput.Dtor_keyring().UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.IKeyring))
+		}(),
+		Cmm: func() awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsManager {
+			if dafnyOutput.Dtor_cmm().UnwrapOr(nil) == nil {
+				return nil
+			}
+			return awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsManager_FromDafny(dafnyOutput.Dtor_cmm().UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager))
+		}(),
+		LegacyOverride:    Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_legacyOverride_FromDafny(dafnyOutput.Dtor_legacyOverride().UnwrapOr(nil)),
+		PlaintextOverride: Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_plaintextOverride_FromDafny(dafnyOutput.Dtor_plaintextOverride().UnwrapOr(nil)),
+	}
+
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemInput_encryptedItem_FromDafny(input interface{}) map[string]dynamodbtypes.AttributeValue {
+	var m map[string]dynamodbtypes.AttributeValue = make(map[string]dynamodbtypes.AttributeValue)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemOutput_plaintextItem_FromDafny(input interface{}) map[string]dynamodbtypes.AttributeValue {
+	var m map[string]dynamodbtypes.AttributeValue = make(map[string]dynamodbtypes.AttributeValue)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemOutput_parsedHeader_FromDafny(input interface{}) *awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.ParsedHeader {
+	if input == nil {
+		return nil
+	}
+	return &awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.ParsedHeader{AttributeActionsOnEncrypt: Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_attributeActionsOnEncrypt_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.ParsedHeader).Dtor_attributeActionsOnEncrypt()),
+		AlgorithmSuiteId:        Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_algorithmSuiteId_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.ParsedHeader).Dtor_algorithmSuiteId()),
+		EncryptedDataKeys:       Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptedDataKeys_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.ParsedHeader).Dtor_encryptedDataKeys()),
+		StoredEncryptionContext: Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_storedEncryptionContext_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.ParsedHeader).Dtor_storedEncryptionContext()),
+		EncryptionContext:       Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptionContext_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.ParsedHeader).Dtor_encryptionContext()),
+		SelectorContext:         Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_selectorContext_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.ParsedHeader).Dtor_selectorContext()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_attributeActionsOnEncrypt_FromDafny(input interface{}) map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction {
+	var m map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction = make(map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[awscryptographydbencryptionsdkdynamodbsmithygenerated.Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = awscryptographydbencryptionsdkdynamodbsmithygenerated.Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_algorithmSuiteId_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId {
+	return func() awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId {
+		var u awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId
+		inputEnum := input.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId)
+		index := -1
+		for allEnums := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_DBEAlgorithmSuiteId_{}.AllSingletonConstructors()); ; {
+			enum, ok := allEnums()
+			if ok {
+				index++
+				if enum.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId).Equals(inputEnum) {
+					break
+				}
+			}
+		}
+
+		return u.Values()[index]
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptedDataKeys_FromDafny(input interface{}) []awscryptographymaterialproviderssmithygeneratedtypes.EncryptedDataKey {
+	fieldValue := make([]awscryptographymaterialproviderssmithygeneratedtypes.EncryptedDataKey, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptedDataKeyList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_storedEncryptionContext_FromDafny(input interface{}) map[string]string {
+	var m map[string]string = make(map[string]string)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptionContext_FromDafny(input interface{}) map[string]string {
+	var m map[string]string = make(map[string]string)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_selectorContext_FromDafny(input interface{}) map[string]dynamodbtypes.AttributeValue {
+	var m map[string]dynamodbtypes.AttributeValue = make(map[string]dynamodbtypes.AttributeValue)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_Key_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_Key_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemInput_plaintextItem_FromDafny(input interface{}) map[string]dynamodbtypes.AttributeValue {
+	var m map[string]dynamodbtypes.AttributeValue = make(map[string]dynamodbtypes.AttributeValue)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemOutput_encryptedItem_FromDafny(input interface{}) map[string]dynamodbtypes.AttributeValue {
+	var m map[string]dynamodbtypes.AttributeValue = make(map[string]dynamodbtypes.AttributeValue)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemOutput_parsedHeader_FromDafny(input interface{}) *awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.ParsedHeader {
+	if input == nil {
+		return nil
+	}
+	return &awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.ParsedHeader{AttributeActionsOnEncrypt: Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_attributeActionsOnEncrypt_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.ParsedHeader).Dtor_attributeActionsOnEncrypt()),
+		AlgorithmSuiteId:        Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_algorithmSuiteId_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.ParsedHeader).Dtor_algorithmSuiteId()),
+		EncryptedDataKeys:       Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptedDataKeys_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.ParsedHeader).Dtor_encryptedDataKeys()),
+		StoredEncryptionContext: Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_storedEncryptionContext_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.ParsedHeader).Dtor_storedEncryptionContext()),
+		EncryptionContext:       Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptionContext_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.ParsedHeader).Dtor_encryptionContext()),
+		SelectorContext:         Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_selectorContext_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes.ParsedHeader).Dtor_selectorContext()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorException_message_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_logicalTableName_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_partitionKeyName_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_sortKeyName_FromDafny(input interface{}) *string {
+	return func() *string {
+		if input == nil {
+			return nil
+		}
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return &s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_attributeActionsOnEncrypt_FromDafny(input interface{}) map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction {
+	var m map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction = make(map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[awscryptographydbencryptionsdkdynamodbsmithygenerated.Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = awscryptographydbencryptionsdkdynamodbsmithygenerated.Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_allowedUnsignedAttributes_FromDafny(input interface{}) []string {
+	if input == nil {
+		return nil
+	}
+	fieldValue := make([]string, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeNameList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_allowedUnsignedAttributePrefix_FromDafny(input interface{}) *string {
+	return func() *string {
+		if input == nil {
+			return nil
+		}
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return &s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_algorithmSuiteId_FromDafny(input interface{}) *awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId {
+	return func() *awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId {
+		var u awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId
+		if input == nil {
+			return nil
+		}
+		inputEnum := input.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId)
+		index := -1
+		for allEnums := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_DBEAlgorithmSuiteId_{}.AllSingletonConstructors()); ; {
+			enum, ok := allEnums()
+			if ok {
+				index++
+				if enum.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId).Equals(inputEnum) {
+					break
+				}
+			}
+		}
+
+		return &u.Values()[index]
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_legacyOverride_FromDafny(input interface{}) *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyOverride {
+	if input == nil {
+		return nil
+	}
+	return &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyOverride{Policy: awscryptographydbencryptionsdkdynamodbsmithygenerated.Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_policy_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyOverride).Dtor_policy()),
+		Encryptor:                 awscryptographydbencryptionsdkdynamodbsmithygenerated.LegacyDynamoDbEncryptor_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyOverride).Dtor_encryptor()),
+		AttributeActionsOnEncrypt: awscryptographydbencryptionsdkdynamodbsmithygenerated.Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_attributeActionsOnEncrypt_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyOverride).Dtor_attributeActionsOnEncrypt()),
+		DefaultAttributeFlag:      awscryptographydbencryptionsdkdynamodbsmithygenerated.Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_defaultAttributeFlag_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyOverride).Dtor_defaultAttributeFlag().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_plaintextOverride_FromDafny(input interface{}) *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PlaintextOverride {
+	return func() *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PlaintextOverride {
+		var u awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PlaintextOverride
+		if input == nil {
+			return nil
+		}
+		inputEnum := input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride)
+		index := -1
+		for allEnums := dafny.Iterate(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_PlaintextOverride_{}.AllSingletonConstructors()); ; {
+			enum, ok := allEnums()
+			if ok {
+				index++
+				if enum.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride).Equals(inputEnum) {
+					break
+				}
+			}
+		}
+
+		return &u.Values()[index]
+	}()
+}
diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes/errors.go b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes/errors.go
new file mode 100644
index 000000000..7dbd6b99e
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes/errors.go
@@ -0,0 +1,17 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes
+
+import (
+	"fmt"
+)
+
+type DynamoDbItemEncryptorException struct {
+	DynamoDbItemEncryptorBaseException
+	Message           string
+	ErrorCodeOverride *string
+}
+
+func (e DynamoDbItemEncryptorException) Error() string {
+	return fmt.Sprintf("%s: %s", e.ErrorCodeOverride, e.Message)
+}
diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes/types.go b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes/types.go
new file mode 100644
index 000000000..fc98f125c
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes/types.go
@@ -0,0 +1,852 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes
+
+import (
+	"fmt"
+	"unicode/utf8"
+
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/test/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes"
+	dynamodbtypes "github.com/aws/aws-sdk-go-v2/service/dynamodb/types"
+)
+
+type DecryptItemInput struct {
+	EncryptedItem map[string]dynamodbtypes.AttributeValue
+}
+
+func (input DecryptItemInput) Validate() error {
+	if input.EncryptedItem == nil {
+		return fmt.Errorf("input.EncryptedItem is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemInput_encryptedItem_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemInput_encryptedItem_Validate()
+	}
+
+	return nil
+}
+
+func (input DecryptItemInput) Com_amazonaws_dynamodb_AttributeMap_value_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+	case *dynamodbtypes.AttributeValueMemberL:
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input DecryptItemInput) Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+		if input.Com_amazonaws_dynamodb_AttributeValue_M_Validate(unionType.Value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeValue_M_Validate(unionType.Value)
+		}
+	case *dynamodbtypes.AttributeValueMemberL:
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input DecryptItemInput) Com_amazonaws_dynamodb_AttributeValue_M_Validate(Value map[string]dynamodbtypes.AttributeValue) error {
+	for key, value := range Value {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+		if input.Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(value) != nil {
+			return input.Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(value)
+		}
+	}
+
+	return nil
+}
+func (input DecryptItemInput) Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+	case *dynamodbtypes.AttributeValueMemberL:
+		if input.Com_amazonaws_dynamodb_AttributeValue_L_Validate(unionType.Value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeValue_L_Validate(unionType.Value)
+		}
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input DecryptItemInput) Com_amazonaws_dynamodb_AttributeValue_L_Validate(Value []dynamodbtypes.AttributeValue) error {
+	for _, item := range Value {
+		if input.Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(item) != nil {
+			return input.Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(item)
+		}
+	}
+
+	return nil
+}
+func (input DecryptItemInput) Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemInput_encryptedItem_Validate() error {
+	for key, value := range input.EncryptedItem {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+		if input.Com_amazonaws_dynamodb_AttributeMap_value_Validate(value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeMap_value_Validate(value)
+		}
+	}
+
+	return nil
+}
+
+type EncryptItemInput struct {
+	PlaintextItem map[string]dynamodbtypes.AttributeValue
+}
+
+func (input EncryptItemInput) Validate() error {
+	if input.PlaintextItem == nil {
+		return fmt.Errorf("input.PlaintextItem is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemInput_plaintextItem_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemInput_plaintextItem_Validate()
+	}
+
+	return nil
+}
+
+func (input EncryptItemInput) Com_amazonaws_dynamodb_AttributeMap_value_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+	case *dynamodbtypes.AttributeValueMemberL:
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input EncryptItemInput) Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+		if input.Com_amazonaws_dynamodb_AttributeValue_M_Validate(unionType.Value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeValue_M_Validate(unionType.Value)
+		}
+	case *dynamodbtypes.AttributeValueMemberL:
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input EncryptItemInput) Com_amazonaws_dynamodb_AttributeValue_M_Validate(Value map[string]dynamodbtypes.AttributeValue) error {
+	for key, value := range Value {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+		if input.Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(value) != nil {
+			return input.Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(value)
+		}
+	}
+
+	return nil
+}
+func (input EncryptItemInput) Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+	case *dynamodbtypes.AttributeValueMemberL:
+		if input.Com_amazonaws_dynamodb_AttributeValue_L_Validate(unionType.Value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeValue_L_Validate(unionType.Value)
+		}
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input EncryptItemInput) Com_amazonaws_dynamodb_AttributeValue_L_Validate(Value []dynamodbtypes.AttributeValue) error {
+	for _, item := range Value {
+		if input.Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(item) != nil {
+			return input.Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(item)
+		}
+	}
+
+	return nil
+}
+func (input EncryptItemInput) Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemInput_plaintextItem_Validate() error {
+	for key, value := range input.PlaintextItem {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+		if input.Com_amazonaws_dynamodb_AttributeMap_value_Validate(value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeMap_value_Validate(value)
+		}
+	}
+
+	return nil
+}
+
+type ParsedHeader struct {
+	AlgorithmSuiteId awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId
+
+	AttributeActionsOnEncrypt map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction
+
+	EncryptedDataKeys []awscryptographymaterialproviderssmithygeneratedtypes.EncryptedDataKey
+
+	EncryptionContext map[string]string
+
+	SelectorContext map[string]dynamodbtypes.AttributeValue
+
+	StoredEncryptionContext map[string]string
+}
+
+func (input ParsedHeader) Validate() error {
+	if input.AttributeActionsOnEncrypt == nil {
+		return fmt.Errorf("input.AttributeActionsOnEncrypt is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_attributeActionsOnEncrypt_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_attributeActionsOnEncrypt_Validate()
+	}
+	if input.EncryptedDataKeys == nil {
+		return fmt.Errorf("input.EncryptedDataKeys is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptedDataKeys_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptedDataKeys_Validate()
+	}
+	if input.EncryptionContext == nil {
+		return fmt.Errorf("input.EncryptionContext is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptionContext_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptionContext_Validate()
+	}
+	if input.SelectorContext == nil {
+		return fmt.Errorf("input.SelectorContext is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_selectorContext_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_selectorContext_Validate()
+	}
+	if input.StoredEncryptionContext == nil {
+		return fmt.Errorf("input.StoredEncryptionContext is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_storedEncryptionContext_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_storedEncryptionContext_Validate()
+	}
+
+	return nil
+}
+
+func (input ParsedHeader) Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_attributeActionsOnEncrypt_Validate() error {
+	for key, _ := range input.AttributeActionsOnEncrypt {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+	}
+
+	return nil
+}
+func (input ParsedHeader) Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptedDataKeys_Validate() error {
+	for _, item := range input.EncryptedDataKeys {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+func (input ParsedHeader) Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_encryptionContext_Validate() error {
+	for key, value := range input.EncryptionContext {
+		if !utf8.ValidString(key) {
+			return fmt.Errorf("Invalid UTF bytes %s ", key)
+		}
+		if !utf8.ValidString(value) {
+			return fmt.Errorf("Invalid UTF bytes %s ", value)
+		}
+	}
+
+	return nil
+}
+func (input ParsedHeader) Com_amazonaws_dynamodb_Key_value_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+	case *dynamodbtypes.AttributeValueMemberL:
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input ParsedHeader) Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+		if input.Com_amazonaws_dynamodb_AttributeValue_M_Validate(unionType.Value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeValue_M_Validate(unionType.Value)
+		}
+	case *dynamodbtypes.AttributeValueMemberL:
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input ParsedHeader) Com_amazonaws_dynamodb_AttributeValue_M_Validate(Value map[string]dynamodbtypes.AttributeValue) error {
+	for key, value := range Value {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+		if input.Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(value) != nil {
+			return input.Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(value)
+		}
+	}
+
+	return nil
+}
+func (input ParsedHeader) Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+	case *dynamodbtypes.AttributeValueMemberL:
+		if input.Com_amazonaws_dynamodb_AttributeValue_L_Validate(unionType.Value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeValue_L_Validate(unionType.Value)
+		}
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input ParsedHeader) Com_amazonaws_dynamodb_AttributeValue_L_Validate(Value []dynamodbtypes.AttributeValue) error {
+	for _, item := range Value {
+		if input.Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(item) != nil {
+			return input.Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(item)
+		}
+	}
+
+	return nil
+}
+func (input ParsedHeader) Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_selectorContext_Validate() error {
+	for key, value := range input.SelectorContext {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+		if input.Com_amazonaws_dynamodb_Key_value_Validate(value) != nil {
+			return input.Com_amazonaws_dynamodb_Key_value_Validate(value)
+		}
+	}
+
+	return nil
+}
+func (input ParsedHeader) Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_ParsedHeader_storedEncryptionContext_Validate() error {
+	for key, value := range input.StoredEncryptionContext {
+		if !utf8.ValidString(key) {
+			return fmt.Errorf("Invalid UTF bytes %s ", key)
+		}
+		if !utf8.ValidString(value) {
+			return fmt.Errorf("Invalid UTF bytes %s ", value)
+		}
+	}
+
+	return nil
+}
+
+type DecryptItemOutput struct {
+	PlaintextItem map[string]dynamodbtypes.AttributeValue
+
+	ParsedHeader *ParsedHeader
+}
+
+func (input DecryptItemOutput) Validate() error {
+	if input.PlaintextItem == nil {
+		return fmt.Errorf("input.PlaintextItem is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemOutput_plaintextItem_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemOutput_plaintextItem_Validate()
+	}
+	if input.ParsedHeader != nil {
+		if input.ParsedHeader.Validate() != nil {
+			return input.ParsedHeader.Validate()
+		}
+
+	}
+
+	return nil
+}
+
+func (input DecryptItemOutput) Com_amazonaws_dynamodb_AttributeMap_value_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+	case *dynamodbtypes.AttributeValueMemberL:
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input DecryptItemOutput) Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+		if input.Com_amazonaws_dynamodb_AttributeValue_M_Validate(unionType.Value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeValue_M_Validate(unionType.Value)
+		}
+	case *dynamodbtypes.AttributeValueMemberL:
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input DecryptItemOutput) Com_amazonaws_dynamodb_AttributeValue_M_Validate(Value map[string]dynamodbtypes.AttributeValue) error {
+	for key, value := range Value {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+		if input.Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(value) != nil {
+			return input.Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(value)
+		}
+	}
+
+	return nil
+}
+func (input DecryptItemOutput) Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+	case *dynamodbtypes.AttributeValueMemberL:
+		if input.Com_amazonaws_dynamodb_AttributeValue_L_Validate(unionType.Value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeValue_L_Validate(unionType.Value)
+		}
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input DecryptItemOutput) Com_amazonaws_dynamodb_AttributeValue_L_Validate(Value []dynamodbtypes.AttributeValue) error {
+	for _, item := range Value {
+		if input.Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(item) != nil {
+			return input.Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(item)
+		}
+	}
+
+	return nil
+}
+func (input DecryptItemOutput) Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DecryptItemOutput_plaintextItem_Validate() error {
+	for key, value := range input.PlaintextItem {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+		if input.Com_amazonaws_dynamodb_AttributeMap_value_Validate(value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeMap_value_Validate(value)
+		}
+	}
+
+	return nil
+}
+
+type EncryptItemOutput struct {
+	EncryptedItem map[string]dynamodbtypes.AttributeValue
+
+	ParsedHeader *ParsedHeader
+}
+
+func (input EncryptItemOutput) Validate() error {
+	if input.EncryptedItem == nil {
+		return fmt.Errorf("input.EncryptedItem is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemOutput_encryptedItem_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemOutput_encryptedItem_Validate()
+	}
+	if input.ParsedHeader != nil {
+		if input.ParsedHeader.Validate() != nil {
+			return input.ParsedHeader.Validate()
+		}
+
+	}
+
+	return nil
+}
+
+func (input EncryptItemOutput) Com_amazonaws_dynamodb_AttributeMap_value_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+	case *dynamodbtypes.AttributeValueMemberL:
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input EncryptItemOutput) Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+		if input.Com_amazonaws_dynamodb_AttributeValue_M_Validate(unionType.Value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeValue_M_Validate(unionType.Value)
+		}
+	case *dynamodbtypes.AttributeValueMemberL:
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input EncryptItemOutput) Com_amazonaws_dynamodb_AttributeValue_M_Validate(Value map[string]dynamodbtypes.AttributeValue) error {
+	for key, value := range Value {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+		if input.Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(value) != nil {
+			return input.Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(value)
+		}
+	}
+
+	return nil
+}
+func (input EncryptItemOutput) Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+	case *dynamodbtypes.AttributeValueMemberL:
+		if input.Com_amazonaws_dynamodb_AttributeValue_L_Validate(unionType.Value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeValue_L_Validate(unionType.Value)
+		}
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input EncryptItemOutput) Com_amazonaws_dynamodb_AttributeValue_L_Validate(Value []dynamodbtypes.AttributeValue) error {
+	for _, item := range Value {
+		if input.Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(item) != nil {
+			return input.Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(item)
+		}
+	}
+
+	return nil
+}
+func (input EncryptItemOutput) Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_EncryptItemOutput_encryptedItem_Validate() error {
+	for key, value := range input.EncryptedItem {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+		if input.Com_amazonaws_dynamodb_AttributeMap_value_Validate(value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeMap_value_Validate(value)
+		}
+	}
+
+	return nil
+}
+
+type AtomicPrimitivesReference struct {
+}
+
+func (input AtomicPrimitivesReference) Validate() error {
+
+	return nil
+}
+
+type DynamoDbItemEncryptorConfig struct {
+	AttributeActionsOnEncrypt map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction
+
+	LogicalTableName string
+
+	PartitionKeyName string
+
+	AlgorithmSuiteId *awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId
+
+	AllowedUnsignedAttributePrefix *string
+
+	AllowedUnsignedAttributes []string
+
+	Cmm awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsManager
+
+	Keyring awscryptographymaterialproviderssmithygeneratedtypes.IKeyring
+
+	LegacyOverride *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyOverride
+
+	PlaintextOverride *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PlaintextOverride
+
+	SortKeyName *string
+}
+
+func (input DynamoDbItemEncryptorConfig) Validate() error {
+	if input.AttributeActionsOnEncrypt == nil {
+		return fmt.Errorf("input.AttributeActionsOnEncrypt is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_attributeActionsOnEncrypt_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_attributeActionsOnEncrypt_Validate()
+	}
+	if len(input.PartitionKeyName) < 1 {
+		return fmt.Errorf("KeySchemaAttributeName has a minimum length of 1 but has the length of %d.", len(input.PartitionKeyName))
+	}
+	if len(input.PartitionKeyName) > 255 {
+		return fmt.Errorf("KeySchemaAttributeName has a maximum length of 255 but has the length of %d.", len(input.PartitionKeyName))
+	}
+	if len(input.AllowedUnsignedAttributes) < 1 {
+		return fmt.Errorf("AttributeNameList has a minimum length of 1 but has the length of %d.", len(input.AllowedUnsignedAttributes))
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_allowedUnsignedAttributes_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_allowedUnsignedAttributes_Validate()
+	}
+	if input.LegacyOverride != nil {
+		if input.LegacyOverride.Validate() != nil {
+			return input.LegacyOverride.Validate()
+		}
+
+	}
+	if input.SortKeyName != nil {
+		if len(*input.SortKeyName) < 1 {
+			return fmt.Errorf("KeySchemaAttributeName has a minimum length of 1 but has the length of %d.", len(*input.SortKeyName))
+		}
+		if len(*input.SortKeyName) > 255 {
+			return fmt.Errorf("KeySchemaAttributeName has a maximum length of 255 but has the length of %d.", len(*input.SortKeyName))
+		}
+	}
+
+	return nil
+}
+
+func (input DynamoDbItemEncryptorConfig) Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_attributeActionsOnEncrypt_Validate() error {
+	for key, _ := range input.AttributeActionsOnEncrypt {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+	}
+
+	return nil
+}
+func (input DynamoDbItemEncryptorConfig) Aws_cryptography_dbEncryptionSdk_dynamoDb_itemEncryptor_DynamoDbItemEncryptorConfig_allowedUnsignedAttributes_Validate() error {
+	for _, item := range input.AllowedUnsignedAttributes {
+		if len(item) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(item))
+		}
+		if len(item) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(item))
+		}
+	}
+
+	return nil
+}
+
+type StructuredEncryptionReference struct {
+}
+
+func (input StructuredEncryptionReference) Validate() error {
+
+	return nil
+}
+
+type DynamoDbItemEncryptorBaseException interface {
+	// This is a dummy method to allow type assertion since Go empty interfaces
+	// aren't useful for type assertion checks. No concrete class is expected to implement
+	// this method. This is also not exported.
+	interfaceBindingMethod()
+}
diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes/unmodelled_errors.go b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes/unmodelled_errors.go
new file mode 100644
index 000000000..e6a12a0b3
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes/unmodelled_errors.go
@@ -0,0 +1,26 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes
+
+import (
+	"fmt"
+)
+
+type CollectionOfErrors struct {
+	DynamoDbItemEncryptorBaseException
+	ListOfErrors []error
+	Message      string
+}
+
+func (e CollectionOfErrors) Error() string {
+	return fmt.Sprintf("message: %s\n err %v", e.Message, e.ListOfErrors)
+}
+
+type OpaqueError struct {
+	DynamoDbItemEncryptorBaseException
+	ErrObject interface{}
+}
+
+func (e OpaqueError) Error() string {
+	return fmt.Sprintf("message: %v", e.ErrObject)
+}
diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/DynamoDbKeyBranchKeyIdSupplier.go b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/DynamoDbKeyBranchKeyIdSupplier.go
new file mode 100644
index 000000000..3be011021
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/DynamoDbKeyBranchKeyIdSupplier.go
@@ -0,0 +1,25 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbsmithygenerated
+
+import (
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes"
+)
+
+type DynamoDbKeyBranchKeyIdSupplier struct {
+	Impl AwsCryptographyDbEncryptionSdkDynamoDbTypes.IDynamoDbKeyBranchKeyIdSupplier
+}
+
+func (this *DynamoDbKeyBranchKeyIdSupplier) GetBranchKeyIdFromDdbKey(params awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetBranchKeyIdFromDdbKeyInput) (*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetBranchKeyIdFromDdbKeyOutput, error) {
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetBranchKeyIdFromDdbKeyInput = GetBranchKeyIdFromDdbKeyInput_ToDafny(params)
+	var dafny_response = this.Impl.GetBranchKeyIdFromDdbKey(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = GetBranchKeyIdFromDdbKeyOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetBranchKeyIdFromDdbKeyOutput))
+	return &native_response, nil
+
+}
diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/DynamoDbKeyBranchKeyIdSupplierNativeWrapper.go b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/DynamoDbKeyBranchKeyIdSupplierNativeWrapper.go
new file mode 100644
index 000000000..49450292e
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/DynamoDbKeyBranchKeyIdSupplierNativeWrapper.go
@@ -0,0 +1,23 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbsmithygenerated
+
+import (
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes"
+)
+
+type DynamoDbKeyBranchKeyIdSupplierNativeWrapper struct {
+	AwsCryptographyDbEncryptionSdkDynamoDbTypes.IDynamoDbKeyBranchKeyIdSupplier
+	Impl awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.IDynamoDbKeyBranchKeyIdSupplier
+}
+
+func (this *DynamoDbKeyBranchKeyIdSupplierNativeWrapper) GetBranchKeyIdFromDdbKey(input AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetBranchKeyIdFromDdbKeyInput) Wrappers.Result {
+	var native_request = GetBranchKeyIdFromDdbKeyInput_FromDafny(input)
+	var native_response, native_error = this.Impl.GetBranchKeyIdFromDdbKey(native_request)
+	if native_error != nil {
+		return Wrappers.Companion_Result_.Create_Failure_(Error_ToDafny(native_error))
+	}
+	return Wrappers.Companion_Result_.Create_Success_(GetBranchKeyIdFromDdbKeyOutput_ToDafny(*native_response))
+}
diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/LegacyDynamoDbEncryptor.go b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/LegacyDynamoDbEncryptor.go
new file mode 100644
index 000000000..eafc684e5
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/LegacyDynamoDbEncryptor.go
@@ -0,0 +1,11 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbsmithygenerated
+
+import (
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbTypes"
+)
+
+type LegacyDynamoDbEncryptor struct {
+	Impl AwsCryptographyDbEncryptionSdkDynamoDbTypes.ILegacyDynamoDbEncryptor
+}
diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/LegacyDynamoDbEncryptorNativeWrapper.go b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/LegacyDynamoDbEncryptorNativeWrapper.go
new file mode 100644
index 000000000..785ae9a55
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/LegacyDynamoDbEncryptorNativeWrapper.go
@@ -0,0 +1,13 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbsmithygenerated
+
+import (
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes"
+)
+
+type LegacyDynamoDbEncryptorNativeWrapper struct {
+	AwsCryptographyDbEncryptionSdkDynamoDbTypes.ILegacyDynamoDbEncryptor
+	Impl awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.ILegacyDynamoDbEncryptor
+}
diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/api_client.go b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/api_client.go
new file mode 100644
index 000000000..beeda18d4
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/api_client.go
@@ -0,0 +1,68 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbsmithygenerated
+
+import (
+	"context"
+
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/DynamoDbEncryption"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes"
+)
+
+type Client struct {
+	DafnyClient AwsCryptographyDbEncryptionSdkDynamoDbTypes.IDynamoDbEncryptionClient
+}
+
+func NewClient(clientConfig awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbEncryptionConfig) (*Client, error) {
+	var dafnyConfig = DynamoDbEncryptionConfig_ToDafny(clientConfig)
+	var dafny_response = DynamoDbEncryption.Companion_Default___.DynamoDbEncryption(dafnyConfig)
+	if dafny_response.Is_Failure() {
+		panic("Client construction failed. This should never happen")
+	}
+	var dafnyClient = dafny_response.Extract().(AwsCryptographyDbEncryptionSdkDynamoDbTypes.IDynamoDbEncryptionClient)
+	client := &Client{dafnyClient}
+	return client, nil
+}
+
+func (client *Client) CreateDynamoDbEncryptionBranchKeyIdSupplier(ctx context.Context, params awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CreateDynamoDbEncryptionBranchKeyIdSupplierInput) (*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CreateDynamoDbEncryptionBranchKeyIdSupplierOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTypes.CreateDynamoDbEncryptionBranchKeyIdSupplierInput = CreateDynamoDbEncryptionBranchKeyIdSupplierInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.CreateDynamoDbEncryptionBranchKeyIdSupplier(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CreateDynamoDbEncryptionBranchKeyIdSupplierOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) GetEncryptedDataKeyDescription(ctx context.Context, params awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetEncryptedDataKeyDescriptionInput) (*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetEncryptedDataKeyDescriptionOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionInput = GetEncryptedDataKeyDescriptionInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.GetEncryptedDataKeyDescription(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = GetEncryptedDataKeyDescriptionOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionOutput))
+	return &native_response, nil
+
+}
diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/to_dafny.go b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/to_dafny.go
new file mode 100644
index 000000000..015d4054d
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/to_dafny.go
@@ -0,0 +1,1821 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbsmithygenerated
+
+import (
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/comamazonawsdynamodbsmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographykeystoresmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographykeystoresmithygeneratedtypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/awscryptographyprimitivessmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/awscryptographyprimitivessmithygeneratedtypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes"
+	dynamodbtypes "github.com/aws/aws-sdk-go-v2/service/dynamodb/types"
+	"github.com/aws/smithy-go"
+	"github.com/dafny-lang/DafnyRuntimeGo/v4/dafny"
+)
+
+func CreateDynamoDbEncryptionBranchKeyIdSupplierInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CreateDynamoDbEncryptionBranchKeyIdSupplierInput) AwsCryptographyDbEncryptionSdkDynamoDbTypes.CreateDynamoDbEncryptionBranchKeyIdSupplierInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.CreateDynamoDbEncryptionBranchKeyIdSupplierInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_CreateDynamoDbEncryptionBranchKeyIdSupplierInput_.Create_CreateDynamoDbEncryptionBranchKeyIdSupplierInput_(DynamoDbKeyBranchKeyIdSupplier_ToDafny(nativeInput.DdbKeyBranchKeyIdSupplier))
+	}()
+
+}
+
+func CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CreateDynamoDbEncryptionBranchKeyIdSupplierOutput) AwsCryptographyDbEncryptionSdkDynamoDbTypes.CreateDynamoDbEncryptionBranchKeyIdSupplierOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.CreateDynamoDbEncryptionBranchKeyIdSupplierOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_.Create_CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_(awscryptographymaterialproviderssmithygenerated.BranchKeyIdSupplier_ToDafny(nativeOutput.BranchKeyIdSupplier))
+	}()
+
+}
+
+func GetEncryptedDataKeyDescriptionInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetEncryptedDataKeyDescriptionInput) AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_GetEncryptedDataKeyDescriptionInput_.Create_GetEncryptedDataKeyDescriptionInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionInput_input_ToDafny(nativeInput.Input))
+	}()
+
+}
+
+func GetEncryptedDataKeyDescriptionOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetEncryptedDataKeyDescriptionOutput) AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_GetEncryptedDataKeyDescriptionOutput_.Create_GetEncryptedDataKeyDescriptionOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionOutput_EncryptedDataKeyDescriptionOutput_ToDafny(nativeOutput.EncryptedDataKeyDescriptionOutput))
+	}()
+
+}
+
+func GetBranchKeyIdFromDdbKeyInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetBranchKeyIdFromDdbKeyInput) AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetBranchKeyIdFromDdbKeyInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetBranchKeyIdFromDdbKeyInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_GetBranchKeyIdFromDdbKeyInput_.Create_GetBranchKeyIdFromDdbKeyInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_GetBranchKeyIdFromDdbKeyInput_ddbKey_ToDafny(nativeInput.DdbKey))
+	}()
+
+}
+
+func GetBranchKeyIdFromDdbKeyOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetBranchKeyIdFromDdbKeyOutput) AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetBranchKeyIdFromDdbKeyOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetBranchKeyIdFromDdbKeyOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_GetBranchKeyIdFromDdbKeyOutput_.Create_GetBranchKeyIdFromDdbKeyOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_GetBranchKeyIdFromDdbKeyOutput_branchKeyId_ToDafny(nativeOutput.BranchKeyId))
+	}()
+
+}
+
+func DynamoDbKeyBranchKeyIdSupplier_ToDafny(nativeResource awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.IDynamoDbKeyBranchKeyIdSupplier) AwsCryptographyDbEncryptionSdkDynamoDbTypes.IDynamoDbKeyBranchKeyIdSupplier {
+	val, ok := nativeResource.(*DynamoDbKeyBranchKeyIdSupplier)
+	if ok {
+		return val.Impl
+	}
+	return DynamoDbKeyBranchKeyIdSupplier{&DynamoDbKeyBranchKeyIdSupplierNativeWrapper{Impl: nativeResource}}.Impl
+
+}
+
+func LegacyDynamoDbEncryptor_ToDafny(nativeResource awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.ILegacyDynamoDbEncryptor) AwsCryptographyDbEncryptionSdkDynamoDbTypes.ILegacyDynamoDbEncryptor {
+	val, ok := nativeResource.(*LegacyDynamoDbEncryptor)
+	if ok {
+		return val.Impl
+	}
+	return LegacyDynamoDbEncryptor{&LegacyDynamoDbEncryptorNativeWrapper{Impl: nativeResource}}.Impl
+
+}
+
+func DynamoDbEncryptionException_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbEncryptionException) AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_DynamoDbEncryptionException_(Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbEncryptionException_message_ToDafny(nativeInput.Message))
+	}()
+
+}
+
+func CollectionOfErrors_Input_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CollectionOfErrors) AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error {
+	var e []interface{}
+	for _, i2 := range nativeInput.ListOfErrors {
+		e = append(e, Error_ToDafny(i2))
+	}
+	return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_CollectionOfErrors_(dafny.SeqOf(e...), func() dafny.Sequence {
+		res, err := UTF8.DecodeFromNativeGoByteArray([]byte(nativeInput.Message))
+		if err != nil {
+			panic("invalid utf8 input provided")
+		}
+		return res
+	}())
+}
+func OpaqueError_Input_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.OpaqueError) AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error {
+	return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_Opaque_(nativeInput.ErrObject)
+}
+
+func Error_ToDafny(err error) AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error {
+	switch err.(type) {
+	// Service Errors
+	case awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbEncryptionException:
+		return DynamoDbEncryptionException_ToDafny(err.(awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbEncryptionException))
+
+	//DependentErrors
+	case awscryptographyprimitivessmithygeneratedtypes.AwsCryptographicPrimitivesBaseException:
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(awscryptographyprimitivessmithygenerated.Error_ToDafny(err))
+
+	case awscryptographymaterialproviderssmithygeneratedtypes.AwsCryptographicMaterialProvidersBaseException:
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_AwsCryptographyMaterialProviders_(awscryptographymaterialproviderssmithygenerated.Error_ToDafny(err))
+
+	case awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredEncryptionBaseException:
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkStructuredEncryption_(awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.Error_ToDafny(err))
+
+	case awscryptographykeystoresmithygeneratedtypes.KeyStoreBaseException:
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_AwsCryptographyKeyStore_(awscryptographykeystoresmithygenerated.Error_ToDafny(err))
+
+	case *smithy.OperationError:
+		if err.(*smithy.OperationError).Service() == "DynamoDB" {
+			DynamoDBError := comamazonawsdynamodbsmithygenerated.Error_ToDafny(err)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_ComAmazonawsDynamodb_(DynamoDBError)
+		}
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_Opaque_(err)
+
+	case smithy.APIError:
+		DynamoDBError := comamazonawsdynamodbsmithygenerated.Error_ToDafny(err)
+		if !DynamoDBError.Is_OpaqueWithText() {
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_ComAmazonawsDynamodb_(DynamoDBError)
+		}
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Error_.Create_Opaque_(err)
+
+	//Unmodelled Errors
+	case awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CollectionOfErrors:
+		return CollectionOfErrors_Input_ToDafny(err.(awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CollectionOfErrors))
+
+	default:
+		error, ok := err.(awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.OpaqueError)
+		if !ok {
+			panic("Error is not an OpaqueError")
+		}
+		return OpaqueError_Input_ToDafny(error)
+	}
+}
+
+func DynamoDbEncryptionConfig_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbEncryptionConfig) AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbEncryptionConfig {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbEncryptionConfig {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_DynamoDbEncryptionConfig_.Create_DynamoDbEncryptionConfig_()
+	}()
+
+}
+
+func AsSet_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.AsSet) AwsCryptographyDbEncryptionSdkDynamoDbTypes.AsSet {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.AsSet {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_AsSet_.Create_AsSet_()
+	}()
+
+}
+
+func MultiKeyStore_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.MultiKeyStore) AwsCryptographyDbEncryptionSdkDynamoDbTypes.MultiKeyStore {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.MultiKeyStore {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_MultiKeyStore_.Create_MultiKeyStore_(Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_keyFieldName_ToDafny(nativeInput.KeyFieldName), Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_cacheTTL_ToDafny(nativeInput.CacheTTL), Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_cache_ToDafny(nativeInput.Cache), Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_partitionId_ToDafny(nativeInput.PartitionId))
+	}()
+
+}
+
+func SingleKeyStore_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SingleKeyStore) AwsCryptographyDbEncryptionSdkDynamoDbTypes.SingleKeyStore {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.SingleKeyStore {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_SingleKeyStore_.Create_SingleKeyStore_(Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_keyId_ToDafny(nativeInput.KeyId), Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_cacheTTL_ToDafny(nativeInput.CacheTTL), Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_cache_ToDafny(nativeInput.Cache), Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_partitionId_ToDafny(nativeInput.PartitionId))
+	}()
+
+}
+
+func BeaconKeySource_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySource) AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconKeySource {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconKeySource {
+
+		switch nativeInput.(type) {
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySourceMembersingle:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconKeySource_single_ToDafny(nativeInput.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySourceMembersingle).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_BeaconKeySource_{}.Create_single_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SingleKeyStore))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySourceMembermulti:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconKeySource_multi_ToDafny(nativeInput.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySourceMembermulti).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_BeaconKeySource_{}.Create_multi_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.MultiKeyStore))
+
+		default:
+			panic("Unhandled union type")
+		}
+	}()
+
+}
+
+func PartOnly_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PartOnly) AwsCryptographyDbEncryptionSdkDynamoDbTypes.PartOnly {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.PartOnly {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_PartOnly_.Create_PartOnly_()
+	}()
+
+}
+
+func Shared_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Shared) AwsCryptographyDbEncryptionSdkDynamoDbTypes.Shared {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.Shared {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Shared_.Create_Shared_(Aws_cryptography_dbEncryptionSdk_dynamoDb_Shared_other_ToDafny(nativeInput.Other))
+	}()
+
+}
+
+func SharedSet_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SharedSet) AwsCryptographyDbEncryptionSdkDynamoDbTypes.SharedSet {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.SharedSet {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_SharedSet_.Create_SharedSet_(Aws_cryptography_dbEncryptionSdk_dynamoDb_SharedSet_other_ToDafny(nativeInput.Other))
+	}()
+
+}
+
+func BeaconStyle_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyle) AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle {
+
+		switch nativeInput.(type) {
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMemberpartOnly:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_partOnly_ToDafny(nativeInput.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMemberpartOnly).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_BeaconStyle_{}.Create_partOnly_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.PartOnly))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMembershared:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_shared_ToDafny(nativeInput.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMembershared).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_BeaconStyle_{}.Create_shared_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Shared))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMemberasSet:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_asSet_ToDafny(nativeInput.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMemberasSet).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_BeaconStyle_{}.Create_asSet_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.AsSet))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMembersharedSet:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_sharedSet_ToDafny(nativeInput.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMembersharedSet).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_BeaconStyle_{}.Create_sharedSet_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SharedSet))
+
+		default:
+			panic("Unhandled union type")
+		}
+	}()
+
+}
+
+func ConstructorPart_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.ConstructorPart) AwsCryptographyDbEncryptionSdkDynamoDbTypes.ConstructorPart {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.ConstructorPart {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_ConstructorPart_.Create_ConstructorPart_(Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorPart_name_ToDafny(nativeInput.Name), Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorPart_required_ToDafny(nativeInput.Required))
+	}()
+
+}
+
+func Constructor_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Constructor) AwsCryptographyDbEncryptionSdkDynamoDbTypes.Constructor {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.Constructor {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Constructor_.Create_Constructor_(Aws_cryptography_dbEncryptionSdk_dynamoDb_Constructor_parts_ToDafny(nativeInput.Parts))
+	}()
+
+}
+
+func EncryptedPart_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedPart) AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedPart {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedPart {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_EncryptedPart_.Create_EncryptedPart_(Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPart_name_ToDafny(nativeInput.Name), Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPart_prefix_ToDafny(nativeInput.Prefix))
+	}()
+
+}
+
+func SignedPart_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SignedPart) AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPart {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPart {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_SignedPart_.Create_SignedPart_(Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_name_ToDafny(nativeInput.Name), Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_prefix_ToDafny(nativeInput.Prefix), Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_loc_ToDafny(nativeInput.Loc))
+	}()
+
+}
+
+func CompoundBeacon_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CompoundBeacon) AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeacon {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeacon {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_CompoundBeacon_.Create_CompoundBeacon_(Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_name_ToDafny(nativeInput.Name), Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_split_ToDafny(nativeInput.Split), Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_encrypted_ToDafny(nativeInput.Encrypted), Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_signed_ToDafny(nativeInput.Signed), Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_constructors_ToDafny(nativeInput.Constructors))
+	}()
+
+}
+
+func StandardBeacon_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.StandardBeacon) AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_StandardBeacon_.Create_StandardBeacon_(Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_name_ToDafny(nativeInput.Name), Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_length_ToDafny(nativeInput.Length), Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_loc_ToDafny(nativeInput.Loc), Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_style_ToDafny(nativeInput.Style))
+	}()
+
+}
+
+func Insert_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Insert) AwsCryptographyDbEncryptionSdkDynamoDbTypes.Insert {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.Insert {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Insert_.Create_Insert_(Aws_cryptography_dbEncryptionSdk_dynamoDb_Insert_literal_ToDafny(nativeInput.Literal))
+	}()
+
+}
+
+func Lower_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Lower) AwsCryptographyDbEncryptionSdkDynamoDbTypes.Lower {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.Lower {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Lower_.Create_Lower_()
+	}()
+
+}
+
+func GetPrefix_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetPrefix) AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetPrefix {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetPrefix {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_GetPrefix_.Create_GetPrefix_(Aws_cryptography_dbEncryptionSdk_dynamoDb_GetPrefix_length_ToDafny(nativeInput.Length))
+	}()
+
+}
+
+func GetSegment_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSegment) AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegment {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegment {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_GetSegment_.Create_GetSegment_(Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegment_split_ToDafny(nativeInput.Split), Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegment_index_ToDafny(nativeInput.Index))
+	}()
+
+}
+
+func GetSegments_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSegments) AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegments {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegments {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_GetSegments_.Create_GetSegments_(Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_split_ToDafny(nativeInput.Split), Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_low_ToDafny(nativeInput.Low), Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_high_ToDafny(nativeInput.High))
+	}()
+
+}
+
+func GetSubstring_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSubstring) AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSubstring {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSubstring {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_GetSubstring_.Create_GetSubstring_(Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSubstring_low_ToDafny(nativeInput.Low), Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSubstring_high_ToDafny(nativeInput.High))
+	}()
+
+}
+
+func GetSuffix_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSuffix) AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSuffix {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSuffix {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_GetSuffix_.Create_GetSuffix_(Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSuffix_length_ToDafny(nativeInput.Length))
+	}()
+
+}
+
+func Upper_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Upper) AwsCryptographyDbEncryptionSdkDynamoDbTypes.Upper {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.Upper {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Upper_.Create_Upper_()
+	}()
+
+}
+
+func VirtualTransform_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransform) AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform {
+
+		switch nativeInput.(type) {
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberupper:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_upper_ToDafny(nativeInput.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberupper).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_VirtualTransform_{}.Create_upper_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Upper))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberlower:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_lower_ToDafny(nativeInput.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberlower).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_VirtualTransform_{}.Create_lower_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Lower))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberinsert:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_insert_ToDafny(nativeInput.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberinsert).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_VirtualTransform_{}.Create_insert_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Insert))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberprefix:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_prefix_ToDafny(nativeInput.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberprefix).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_VirtualTransform_{}.Create_prefix_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetPrefix))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersuffix:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_suffix_ToDafny(nativeInput.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersuffix).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_VirtualTransform_{}.Create_suffix_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSuffix))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersubstring:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_substring_ToDafny(nativeInput.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersubstring).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_VirtualTransform_{}.Create_substring_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSubstring))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersegment:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_segment_ToDafny(nativeInput.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersegment).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_VirtualTransform_{}.Create_segment_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegment))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersegments:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_segments_ToDafny(nativeInput.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersegments).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_VirtualTransform_{}.Create_segments_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegments))
+
+		default:
+			panic("Unhandled union type")
+		}
+	}()
+
+}
+
+func VirtualPart_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualPart) AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualPart {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualPart {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_VirtualPart_.Create_VirtualPart_(Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPart_loc_ToDafny(nativeInput.Loc), Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPart_trans_ToDafny(nativeInput.Trans))
+	}()
+
+}
+
+func VirtualField_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualField) AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualField {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualField {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_VirtualField_.Create_VirtualField_(Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualField_name_ToDafny(nativeInput.Name), Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualField_parts_ToDafny(nativeInput.Parts))
+	}()
+
+}
+
+func BeaconVersion_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconVersion) AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_BeaconVersion_.Create_BeaconVersion_(Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_version_ToDafny(nativeInput.Version), Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_keyStore_ToDafny(nativeInput.KeyStore), Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_keySource_ToDafny(nativeInput.KeySource), Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_standardBeacons_ToDafny(nativeInput.StandardBeacons), Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_compoundBeacons_ToDafny(nativeInput.CompoundBeacons), Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_virtualFields_ToDafny(nativeInput.VirtualFields), Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_encryptedParts_ToDafny(nativeInput.EncryptedParts), Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_signedParts_ToDafny(nativeInput.SignedParts))
+	}()
+
+}
+
+func LegacyPolicy_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyPolicy) AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyPolicy {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyPolicy {
+
+		var index int
+		for _, enumVal := range nativeInput.Values() {
+			index++
+			if enumVal == nativeInput {
+				break
+			}
+			if index == len(nativeInput.Values()) {
+				panic("Input value did not found in enum values")
+			}
+
+		}
+		var enum interface{}
+		for allEnums, i := dafny.Iterate(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_LegacyPolicy_{}.AllSingletonConstructors()), 0; i < index; i++ {
+			var ok bool
+			enum, ok = allEnums()
+			if !ok {
+				break
+			}
+		}
+		return enum.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyPolicy)
+	}()
+
+}
+
+func LegacyOverride_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyOverride) AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyOverride {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyOverride {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_LegacyOverride_.Create_LegacyOverride_(Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_policy_ToDafny(nativeInput.Policy), LegacyDynamoDbEncryptor_ToDafny(nativeInput.Encryptor), Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_attributeActionsOnEncrypt_ToDafny(nativeInput.AttributeActionsOnEncrypt), Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_defaultAttributeFlag_ToDafny(nativeInput.DefaultAttributeFlag))
+	}()
+
+}
+
+func PlaintextOverride_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PlaintextOverride) AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride {
+
+		var index int
+		for _, enumVal := range nativeInput.Values() {
+			index++
+			if enumVal == nativeInput {
+				break
+			}
+			if index == len(nativeInput.Values()) {
+				panic("Input value did not found in enum values")
+			}
+
+		}
+		var enum interface{}
+		for allEnums, i := dafny.Iterate(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_PlaintextOverride_{}.AllSingletonConstructors()), 0; i < index; i++ {
+			var ok bool
+			enum, ok = allEnums()
+			if !ok {
+				break
+			}
+		}
+		return enum.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride)
+	}()
+
+}
+
+func SearchConfig_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SearchConfig) AwsCryptographyDbEncryptionSdkDynamoDbTypes.SearchConfig {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.SearchConfig {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_SearchConfig_.Create_SearchConfig_(Aws_cryptography_dbEncryptionSdk_dynamoDb_SearchConfig_versions_ToDafny(nativeInput.Versions), Aws_cryptography_dbEncryptionSdk_dynamoDb_SearchConfig_writeVersion_ToDafny(nativeInput.WriteVersion))
+	}()
+
+}
+
+func DynamoDbTableEncryptionConfig_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbTableEncryptionConfig) AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_DynamoDbTableEncryptionConfig_.Create_DynamoDbTableEncryptionConfig_(Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_logicalTableName_ToDafny(nativeInput.LogicalTableName), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_partitionKeyName_ToDafny(nativeInput.PartitionKeyName), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_sortKeyName_ToDafny(nativeInput.SortKeyName), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_search_ToDafny(nativeInput.Search), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_attributeActionsOnEncrypt_ToDafny(nativeInput.AttributeActionsOnEncrypt), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_allowedUnsignedAttributes_ToDafny(nativeInput.AllowedUnsignedAttributes), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_allowedUnsignedAttributePrefix_ToDafny(nativeInput.AllowedUnsignedAttributePrefix), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_algorithmSuiteId_ToDafny(nativeInput.AlgorithmSuiteId), func() Wrappers.Option {
+			if (nativeInput.Keyring) == nil {
+				return Wrappers.Companion_Option_.Create_None_()
+			}
+			return Wrappers.Companion_Option_.Create_Some_(awscryptographymaterialproviderssmithygenerated.Keyring_ToDafny(nativeInput.Keyring))
+		}(), func() Wrappers.Option {
+			if (nativeInput.Cmm) == nil {
+				return Wrappers.Companion_Option_.Create_None_()
+			}
+			return Wrappers.Companion_Option_.Create_Some_(awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsManager_ToDafny(nativeInput.Cmm))
+		}(), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_legacyOverride_ToDafny(nativeInput.LegacyOverride), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_plaintextOverride_ToDafny(nativeInput.PlaintextOverride))
+	}()
+
+}
+
+func DynamoDbTablesEncryptionConfig_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbTablesEncryptionConfig) AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTablesEncryptionConfig {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTablesEncryptionConfig {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_DynamoDbTablesEncryptionConfig_.Create_DynamoDbTablesEncryptionConfig_(Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTablesEncryptionConfig_tableEncryptionConfigs_ToDafny(nativeInput.TableEncryptionConfigs))
+	}()
+
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionInput_input_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetEncryptedDataKeyDescriptionUnion) AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionUnion {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionUnion {
+
+		switch input.(type) {
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetEncryptedDataKeyDescriptionUnionMemberheader:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionUnion_header_ToDafny(input.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetEncryptedDataKeyDescriptionUnionMemberheader).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_GetEncryptedDataKeyDescriptionUnion_{}.Create_header_(inputToConversion.UnwrapOr(nil).(dafny.Sequence))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetEncryptedDataKeyDescriptionUnionMemberitem:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionUnion_item_ToDafny(input.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetEncryptedDataKeyDescriptionUnionMemberitem).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_GetEncryptedDataKeyDescriptionUnion_{}.Create_item_(inputToConversion.UnwrapOr(nil).(dafny.Map))
+
+		default:
+			panic("Unhandled union type")
+		}
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionUnion_header_ToDafny(input []byte) Wrappers.Option {
+	return func() Wrappers.Option {
+		v := make([]interface{}, 0, len(input))
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		for _, e := range input {
+			v = append(v, e)
+		}
+		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqFromArray(v, false))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionUnion_item_ToDafny(input map[string]dynamodbtypes.AttributeValue) Wrappers.Option {
+	return func() Wrappers.Option {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_key_ToDafny(key), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_value_ToDafny(val))
+		}
+		return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionOutput_EncryptedDataKeyDescriptionOutput_ToDafny(input []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedDataKeyDescription) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescriptionList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return dafny.SeqOf(fieldValue...)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescriptionList_member_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedDataKeyDescription) AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedDataKeyDescription {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedDataKeyDescription {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_EncryptedDataKeyDescription_.Create_EncryptedDataKeyDescription_(Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescription_keyProviderId_ToDafny(input.KeyProviderId), Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescription_keyProviderInfo_ToDafny(input.KeyProviderInfo), Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescription_branchKeyId_ToDafny(input.BranchKeyId), Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescription_branchKeyVersion_ToDafny(input.BranchKeyVersion))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescription_keyProviderId_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescription_keyProviderInfo_ToDafny(input *string) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescription_branchKeyId_ToDafny(input *string) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescription_branchKeyVersion_ToDafny(input *string) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetBranchKeyIdFromDdbKeyInput_ddbKey_ToDafny(input map[string]dynamodbtypes.AttributeValue) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_Key_key_ToDafny(key), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_Key_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetBranchKeyIdFromDdbKeyOutput_branchKeyId_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbEncryptionException_message_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_keyFieldName_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_cacheTTL_ToDafny(input int32) int32 {
+	return func() int32 {
+
+		return input
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_cache_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.CacheType) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		switch input.(type) {
+		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberDefault:
+			var inputToConversion = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_Default_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberDefault).Value)
+			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_Default_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DefaultCache)))
+		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberNo:
+			var inputToConversion = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_No_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberNo).Value)
+			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_No_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.NoCache)))
+		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberSingleThreaded:
+			var inputToConversion = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_SingleThreaded_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberSingleThreaded).Value)
+			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_SingleThreaded_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.SingleThreadedCache)))
+		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberMultiThreaded:
+			var inputToConversion = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_MultiThreaded_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberMultiThreaded).Value)
+			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_MultiThreaded_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.MultiThreadedCache)))
+		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberStormTracking:
+			var inputToConversion = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_StormTracking_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberStormTracking).Value)
+			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_StormTracking_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.StormTrackingCache)))
+		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberShared:
+			var inputToConversion = func() Wrappers.Option {
+				if (input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberShared).Value) == nil {
+					return Wrappers.Companion_Option_.Create_None_()
+				}
+				return Wrappers.Companion_Option_.Create_Some_(awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsCache_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberShared).Value))
+			}()
+			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_Shared_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache)))
+
+		default:
+			panic("Unhandled union type")
+		}
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_partitionId_ToDafny(input *string) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_keyId_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_cacheTTL_ToDafny(input int32) int32 {
+	return func() int32 {
+
+		return input
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_cache_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.CacheType) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		switch input.(type) {
+		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberDefault:
+			var inputToConversion = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_Default_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberDefault).Value)
+			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_Default_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DefaultCache)))
+		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberNo:
+			var inputToConversion = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_No_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberNo).Value)
+			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_No_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.NoCache)))
+		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberSingleThreaded:
+			var inputToConversion = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_SingleThreaded_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberSingleThreaded).Value)
+			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_SingleThreaded_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.SingleThreadedCache)))
+		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberMultiThreaded:
+			var inputToConversion = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_MultiThreaded_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberMultiThreaded).Value)
+			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_MultiThreaded_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.MultiThreadedCache)))
+		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberStormTracking:
+			var inputToConversion = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_StormTracking_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberStormTracking).Value)
+			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_StormTracking_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.StormTrackingCache)))
+		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberShared:
+			var inputToConversion = func() Wrappers.Option {
+				if (input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberShared).Value) == nil {
+					return Wrappers.Companion_Option_.Create_None_()
+				}
+				return Wrappers.Companion_Option_.Create_Some_(awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsCache_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberShared).Value))
+			}()
+			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_Shared_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache)))
+
+		default:
+			panic("Unhandled union type")
+		}
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_partitionId_ToDafny(input *string) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconKeySource_single_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SingleKeyStore) Wrappers.Option {
+	return func() Wrappers.Option {
+
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_SingleKeyStore_.Create_SingleKeyStore_(Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_keyId_ToDafny(input.KeyId), Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_cacheTTL_ToDafny(input.CacheTTL), Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_cache_ToDafny(input.Cache), Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_partitionId_ToDafny(input.PartitionId)))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconKeySource_multi_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.MultiKeyStore) Wrappers.Option {
+	return func() Wrappers.Option {
+
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_MultiKeyStore_.Create_MultiKeyStore_(Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_keyFieldName_ToDafny(input.KeyFieldName), Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_cacheTTL_ToDafny(input.CacheTTL), Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_cache_ToDafny(input.Cache), Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_partitionId_ToDafny(input.PartitionId)))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_Shared_other_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SharedSet_other_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_partOnly_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PartOnly) Wrappers.Option {
+	return func() Wrappers.Option {
+
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_PartOnly_.Create_PartOnly_())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_shared_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Shared) Wrappers.Option {
+	return func() Wrappers.Option {
+
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Shared_.Create_Shared_(Aws_cryptography_dbEncryptionSdk_dynamoDb_Shared_other_ToDafny(input.Other)))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_asSet_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.AsSet) Wrappers.Option {
+	return func() Wrappers.Option {
+
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_AsSet_.Create_AsSet_())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_sharedSet_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SharedSet) Wrappers.Option {
+	return func() Wrappers.Option {
+
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_SharedSet_.Create_SharedSet_(Aws_cryptography_dbEncryptionSdk_dynamoDb_SharedSet_other_ToDafny(input.Other)))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorPart_name_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorPart_required_ToDafny(input bool) bool {
+	return func() bool {
+
+		return input
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_Constructor_parts_ToDafny(input []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.ConstructorPart) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorPartList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return dafny.SeqOf(fieldValue...)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorPartList_member_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.ConstructorPart) AwsCryptographyDbEncryptionSdkDynamoDbTypes.ConstructorPart {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.ConstructorPart {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_ConstructorPart_.Create_ConstructorPart_(Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorPart_name_ToDafny(input.Name), Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorPart_required_ToDafny(input.Required))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPart_name_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPart_prefix_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_name_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_prefix_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_loc_ToDafny(input *string) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_name_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_split_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_encrypted_ToDafny(input []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedPart) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPartsList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPartsList_member_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedPart) AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedPart {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedPart {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_EncryptedPart_.Create_EncryptedPart_(Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPart_name_ToDafny(input.Name), Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPart_prefix_ToDafny(input.Prefix))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_signed_ToDafny(input []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SignedPart) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPartsList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPartsList_member_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SignedPart) AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPart {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPart {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_SignedPart_.Create_SignedPart_(Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_name_ToDafny(input.Name), Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_prefix_ToDafny(input.Prefix), Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_loc_ToDafny(input.Loc))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_constructors_ToDafny(input []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Constructor) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorList_member_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Constructor) AwsCryptographyDbEncryptionSdkDynamoDbTypes.Constructor {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.Constructor {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Constructor_.Create_Constructor_(Aws_cryptography_dbEncryptionSdk_dynamoDb_Constructor_parts_ToDafny(input.Parts))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_name_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_length_ToDafny(input int32) int32 {
+	return func() int32 {
+
+		return input
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_loc_ToDafny(input *string) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_style_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyle) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		switch input.(type) {
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMemberpartOnly:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_partOnly_ToDafny(input.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMemberpartOnly).Value)
+			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_BeaconStyle_{}.Create_partOnly_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.PartOnly)))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMembershared:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_shared_ToDafny(input.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMembershared).Value)
+			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_BeaconStyle_{}.Create_shared_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Shared)))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMemberasSet:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_asSet_ToDafny(input.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMemberasSet).Value)
+			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_BeaconStyle_{}.Create_asSet_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.AsSet)))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMembersharedSet:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_sharedSet_ToDafny(input.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMembersharedSet).Value)
+			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_BeaconStyle_{}.Create_sharedSet_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SharedSet)))
+
+		default:
+			panic("Unhandled union type")
+		}
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_Insert_literal_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetPrefix_length_ToDafny(input int32) int32 {
+	return func() int32 {
+
+		return input
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegment_split_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegment_index_ToDafny(input int32) int32 {
+	return func() int32 {
+
+		return input
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_split_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_low_ToDafny(input int32) int32 {
+	return func() int32 {
+
+		return input
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_high_ToDafny(input int32) int32 {
+	return func() int32 {
+
+		return input
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSubstring_low_ToDafny(input int32) int32 {
+	return func() int32 {
+
+		return input
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSubstring_high_ToDafny(input int32) int32 {
+	return func() int32 {
+
+		return input
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSuffix_length_ToDafny(input int32) int32 {
+	return func() int32 {
+
+		return input
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_upper_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Upper) Wrappers.Option {
+	return func() Wrappers.Option {
+
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Upper_.Create_Upper_())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_lower_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Lower) Wrappers.Option {
+	return func() Wrappers.Option {
+
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Lower_.Create_Lower_())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_insert_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Insert) Wrappers.Option {
+	return func() Wrappers.Option {
+
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_Insert_.Create_Insert_(Aws_cryptography_dbEncryptionSdk_dynamoDb_Insert_literal_ToDafny(input.Literal)))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_prefix_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetPrefix) Wrappers.Option {
+	return func() Wrappers.Option {
+
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_GetPrefix_.Create_GetPrefix_(Aws_cryptography_dbEncryptionSdk_dynamoDb_GetPrefix_length_ToDafny(input.Length)))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_suffix_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSuffix) Wrappers.Option {
+	return func() Wrappers.Option {
+
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_GetSuffix_.Create_GetSuffix_(Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSuffix_length_ToDafny(input.Length)))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_substring_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSubstring) Wrappers.Option {
+	return func() Wrappers.Option {
+
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_GetSubstring_.Create_GetSubstring_(Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSubstring_low_ToDafny(input.Low), Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSubstring_high_ToDafny(input.High)))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_segment_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSegment) Wrappers.Option {
+	return func() Wrappers.Option {
+
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_GetSegment_.Create_GetSegment_(Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegment_split_ToDafny(input.Split), Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegment_index_ToDafny(input.Index)))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_segments_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSegments) Wrappers.Option {
+	return func() Wrappers.Option {
+
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_GetSegments_.Create_GetSegments_(Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_split_ToDafny(input.Split), Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_low_ToDafny(input.Low), Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_high_ToDafny(input.High)))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPart_loc_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPart_trans_ToDafny(input []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransform) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransformList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransformList_member_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransform) AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform {
+
+		switch input.(type) {
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberupper:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_upper_ToDafny(input.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberupper).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_VirtualTransform_{}.Create_upper_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Upper))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberlower:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_lower_ToDafny(input.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberlower).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_VirtualTransform_{}.Create_lower_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Lower))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberinsert:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_insert_ToDafny(input.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberinsert).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_VirtualTransform_{}.Create_insert_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Insert))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberprefix:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_prefix_ToDafny(input.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberprefix).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_VirtualTransform_{}.Create_prefix_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetPrefix))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersuffix:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_suffix_ToDafny(input.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersuffix).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_VirtualTransform_{}.Create_suffix_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSuffix))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersubstring:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_substring_ToDafny(input.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersubstring).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_VirtualTransform_{}.Create_substring_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSubstring))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersegment:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_segment_ToDafny(input.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersegment).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_VirtualTransform_{}.Create_segment_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegment))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersegments:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_segments_ToDafny(input.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersegments).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_VirtualTransform_{}.Create_segments_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegments))
+
+		default:
+			panic("Unhandled union type")
+		}
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualField_name_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualField_parts_ToDafny(input []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualPart) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPartList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return dafny.SeqOf(fieldValue...)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPartList_member_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualPart) AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualPart {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualPart {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_VirtualPart_.Create_VirtualPart_(Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPart_loc_ToDafny(input.Loc), Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPart_trans_ToDafny(input.Trans))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_version_ToDafny(input int32) int32 {
+	return func() int32 {
+
+		return input
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_keyStore_ToDafny(input *awscryptographykeystoresmithygenerated.Client) AwsCryptographyKeyStoreTypes.IKeyStoreClient {
+	return input.DafnyClient
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_keySource_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySource) AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconKeySource {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconKeySource {
+
+		switch input.(type) {
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySourceMembersingle:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconKeySource_single_ToDafny(input.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySourceMembersingle).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_BeaconKeySource_{}.Create_single_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SingleKeyStore))
+		case *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySourceMembermulti:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconKeySource_multi_ToDafny(input.(*awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySourceMembermulti).Value)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_BeaconKeySource_{}.Create_multi_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkDynamoDbTypes.MultiKeyStore))
+
+		default:
+			panic("Unhandled union type")
+		}
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_standardBeacons_ToDafny(input []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.StandardBeacon) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeaconList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return dafny.SeqOf(fieldValue...)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeaconList_member_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.StandardBeacon) AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_StandardBeacon_.Create_StandardBeacon_(Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_name_ToDafny(input.Name), Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_length_ToDafny(input.Length), Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_loc_ToDafny(input.Loc), Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_style_ToDafny(input.Style))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_compoundBeacons_ToDafny(input []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CompoundBeacon) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeaconList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeaconList_member_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CompoundBeacon) AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeacon {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeacon {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_CompoundBeacon_.Create_CompoundBeacon_(Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_name_ToDafny(input.Name), Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_split_ToDafny(input.Split), Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_encrypted_ToDafny(input.Encrypted), Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_signed_ToDafny(input.Signed), Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_constructors_ToDafny(input.Constructors))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_virtualFields_ToDafny(input []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualField) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualFieldList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualFieldList_member_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualField) AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualField {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualField {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_VirtualField_.Create_VirtualField_(Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualField_name_ToDafny(input.Name), Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualField_parts_ToDafny(input.Parts))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_encryptedParts_ToDafny(input []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedPart) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPartsList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_signedParts_ToDafny(input []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SignedPart) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPartsList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_policy_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyPolicy) AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyPolicy {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyPolicy {
+
+		var index int
+		for _, enumVal := range input.Values() {
+			index++
+			if enumVal == input {
+				break
+			}
+			if index == len(input.Values()) {
+				panic("Input value did not found in enum values")
+			}
+
+		}
+		var enum interface{}
+		for allEnums, i := dafny.Iterate(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_LegacyPolicy_{}.AllSingletonConstructors()), 0; i < index; i++ {
+			var ok bool
+			enum, ok = allEnums()
+			if !ok {
+				break
+			}
+		}
+		return enum.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyPolicy)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_attributeActionsOnEncrypt_ToDafny(input map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_key_ToDafny(key), Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_key_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_value_ToDafny(input awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction {
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction {
+
+		var index int
+		for _, enumVal := range input.Values() {
+			index++
+			if enumVal == input {
+				break
+			}
+			if index == len(input.Values()) {
+				panic("Input value did not found in enum values")
+			}
+
+		}
+		var enum interface{}
+		for allEnums, i := dafny.Iterate(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CompanionStruct_CryptoAction_{}.AllSingletonConstructors()), 0; i < index; i++ {
+			var ok bool
+			enum, ok = allEnums()
+			if !ok {
+				break
+			}
+		}
+		return enum.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_defaultAttributeFlag_ToDafny(input *awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		var index int
+		for _, enumVal := range input.Values() {
+			index++
+			if enumVal == *input {
+				break
+			}
+
+		}
+		var enum interface{}
+		for allEnums, i := dafny.Iterate(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CompanionStruct_CryptoAction_{}.AllSingletonConstructors()), 0; i < index; i++ {
+			var ok bool
+			enum, ok = allEnums()
+			if !ok {
+				break
+			}
+		}
+		return Wrappers.Companion_Option_.Create_Some_(enum.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SearchConfig_versions_ToDafny(input []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconVersion) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersionList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return dafny.SeqOf(fieldValue...)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersionList_member_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconVersion) AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_BeaconVersion_.Create_BeaconVersion_(Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_version_ToDafny(input.Version), Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_keyStore_ToDafny(input.KeyStore), Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_keySource_ToDafny(input.KeySource), Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_standardBeacons_ToDafny(input.StandardBeacons), Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_compoundBeacons_ToDafny(input.CompoundBeacons), Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_virtualFields_ToDafny(input.VirtualFields), Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_encryptedParts_ToDafny(input.EncryptedParts), Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_signedParts_ToDafny(input.SignedParts))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SearchConfig_writeVersion_ToDafny(input int32) int32 {
+	return func() int32 {
+
+		return input
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_logicalTableName_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_partitionKeyName_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_sortKeyName_ToDafny(input *string) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_search_ToDafny(input *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SearchConfig) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_SearchConfig_.Create_SearchConfig_(Aws_cryptography_dbEncryptionSdk_dynamoDb_SearchConfig_versions_ToDafny(input.Versions), Aws_cryptography_dbEncryptionSdk_dynamoDb_SearchConfig_writeVersion_ToDafny(input.WriteVersion)))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_attributeActionsOnEncrypt_ToDafny(input map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_key_ToDafny(key), Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_allowedUnsignedAttributes_ToDafny(input []string) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeNameList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_allowedUnsignedAttributePrefix_ToDafny(input *string) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_algorithmSuiteId_ToDafny(input *awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		var index int
+		for _, enumVal := range input.Values() {
+			index++
+			if enumVal == *input {
+				break
+			}
+
+		}
+		var enum interface{}
+		for allEnums, i := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_DBEAlgorithmSuiteId_{}.AllSingletonConstructors()), 0; i < index; i++ {
+			var ok bool
+			enum, ok = allEnums()
+			if !ok {
+				break
+			}
+		}
+		return Wrappers.Companion_Option_.Create_Some_(enum.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_legacyOverride_ToDafny(input *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyOverride) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_LegacyOverride_.Create_LegacyOverride_(Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_policy_ToDafny(input.Policy), LegacyDynamoDbEncryptor_ToDafny(input.Encryptor), Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_attributeActionsOnEncrypt_ToDafny(input.AttributeActionsOnEncrypt), Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_defaultAttributeFlag_ToDafny(input.DefaultAttributeFlag)))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_plaintextOverride_ToDafny(input *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PlaintextOverride) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		var index int
+		for _, enumVal := range input.Values() {
+			index++
+			if enumVal == *input {
+				break
+			}
+
+		}
+		var enum interface{}
+		for allEnums, i := dafny.Iterate(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_PlaintextOverride_{}.AllSingletonConstructors()), 0; i < index; i++ {
+			var ok bool
+			enum, ok = allEnums()
+			if !ok {
+				break
+			}
+		}
+		return Wrappers.Companion_Option_.Create_Some_(enum.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTablesEncryptionConfig_tableEncryptionConfigs_ToDafny(input map[string]awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbTableEncryptionConfig) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfigList_key_ToDafny(key), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfigList_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfigList_key_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfigList_value_ToDafny(input awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbTableEncryptionConfig) AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTypes.Companion_DynamoDbTableEncryptionConfig_.Create_DynamoDbTableEncryptionConfig_(Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_logicalTableName_ToDafny(input.LogicalTableName), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_partitionKeyName_ToDafny(input.PartitionKeyName), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_sortKeyName_ToDafny(input.SortKeyName), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_search_ToDafny(input.Search), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_attributeActionsOnEncrypt_ToDafny(input.AttributeActionsOnEncrypt), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_allowedUnsignedAttributes_ToDafny(input.AllowedUnsignedAttributes), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_allowedUnsignedAttributePrefix_ToDafny(input.AllowedUnsignedAttributePrefix), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_algorithmSuiteId_ToDafny(input.AlgorithmSuiteId), func() Wrappers.Option {
+			if (input.Keyring) == nil {
+				return Wrappers.Companion_Option_.Create_None_()
+			}
+			return Wrappers.Companion_Option_.Create_Some_(awscryptographymaterialproviderssmithygenerated.Keyring_ToDafny(input.Keyring))
+		}(), func() Wrappers.Option {
+			if (input.Cmm) == nil {
+				return Wrappers.Companion_Option_.Create_None_()
+			}
+			return Wrappers.Companion_Option_.Create_Some_(awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsManager_ToDafny(input.Cmm))
+		}(), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_legacyOverride_ToDafny(input.LegacyOverride), Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_plaintextOverride_ToDafny(input.PlaintextOverride))
+	}()
+}
diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/to_native.go b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/to_native.go
new file mode 100644
index 000000000..b0db0fe5e
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygenerated/to_native.go
@@ -0,0 +1,1658 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbsmithygenerated
+
+import (
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/comamazonawsdynamodbsmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographykeystoresmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/awscryptographyprimitivessmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes"
+	dynamodbtypes "github.com/aws/aws-sdk-go-v2/service/dynamodb/types"
+	"github.com/dafny-lang/DafnyRuntimeGo/v4/dafny"
+)
+
+func CreateDynamoDbEncryptionBranchKeyIdSupplierInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTypes.CreateDynamoDbEncryptionBranchKeyIdSupplierInput) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CreateDynamoDbEncryptionBranchKeyIdSupplierInput {
+
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CreateDynamoDbEncryptionBranchKeyIdSupplierInput{DdbKeyBranchKeyIdSupplier: DynamoDbKeyBranchKeyIdSupplier_FromDafny(dafnyInput.Dtor_ddbKeyBranchKeyIdSupplier())}
+
+}
+
+func CreateDynamoDbEncryptionBranchKeyIdSupplierOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTypes.CreateDynamoDbEncryptionBranchKeyIdSupplierOutput) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CreateDynamoDbEncryptionBranchKeyIdSupplierOutput {
+
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CreateDynamoDbEncryptionBranchKeyIdSupplierOutput{BranchKeyIdSupplier: awscryptographymaterialproviderssmithygenerated.BranchKeyIdSupplier_FromDafny(dafnyOutput.Dtor_branchKeyIdSupplier())}
+
+}
+
+func GetEncryptedDataKeyDescriptionInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionInput) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetEncryptedDataKeyDescriptionInput {
+
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetEncryptedDataKeyDescriptionInput{Input: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionInput_input_FromDafny(dafnyInput.Dtor_input())}
+
+}
+
+func GetEncryptedDataKeyDescriptionOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionOutput) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetEncryptedDataKeyDescriptionOutput {
+
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetEncryptedDataKeyDescriptionOutput{EncryptedDataKeyDescriptionOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionOutput_EncryptedDataKeyDescriptionOutput_FromDafny(dafnyOutput.Dtor_EncryptedDataKeyDescriptionOutput())}
+
+}
+
+func GetBranchKeyIdFromDdbKeyInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetBranchKeyIdFromDdbKeyInput) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetBranchKeyIdFromDdbKeyInput {
+
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetBranchKeyIdFromDdbKeyInput{DdbKey: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetBranchKeyIdFromDdbKeyInput_ddbKey_FromDafny(dafnyInput.Dtor_ddbKey())}
+
+}
+
+func GetBranchKeyIdFromDdbKeyOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetBranchKeyIdFromDdbKeyOutput) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetBranchKeyIdFromDdbKeyOutput {
+
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetBranchKeyIdFromDdbKeyOutput{BranchKeyId: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetBranchKeyIdFromDdbKeyOutput_branchKeyId_FromDafny(dafnyOutput.Dtor_branchKeyId())}
+
+}
+
+func DynamoDbKeyBranchKeyIdSupplier_FromDafny(dafnyResource AwsCryptographyDbEncryptionSdkDynamoDbTypes.IDynamoDbKeyBranchKeyIdSupplier) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.IDynamoDbKeyBranchKeyIdSupplier {
+	val, ok := dafnyResource.(*DynamoDbKeyBranchKeyIdSupplierNativeWrapper)
+	if ok {
+		return val.Impl
+	}
+
+	return &DynamoDbKeyBranchKeyIdSupplier{dafnyResource}
+}
+
+func LegacyDynamoDbEncryptor_FromDafny(dafnyResource AwsCryptographyDbEncryptionSdkDynamoDbTypes.ILegacyDynamoDbEncryptor) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.ILegacyDynamoDbEncryptor {
+	val, ok := dafnyResource.(*LegacyDynamoDbEncryptorNativeWrapper)
+	if ok {
+		return val.Impl
+	}
+
+	return &LegacyDynamoDbEncryptor{dafnyResource}
+}
+
+func DynamoDbEncryptionException_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbEncryptionException {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbEncryptionException{Message: Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbEncryptionException_message_FromDafny(dafnyOutput.Dtor_message())}
+
+}
+
+func CollectionOfErrors_Output_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CollectionOfErrors {
+	listOfErrors := dafnyOutput.Dtor_list()
+	message := dafnyOutput.Dtor_message()
+	t := awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CollectionOfErrors{}
+	for i := dafny.Iterate(listOfErrors); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		err := val.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error)
+		t.ListOfErrors = append(t.ListOfErrors, Error_FromDafny(err))
+
+	}
+	t.Message = func() string {
+		a := UTF8.Encode(message.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+		return s
+	}()
+	return t
+}
+func OpaqueError_Output_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.OpaqueError {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.OpaqueError{
+		ErrObject: dafnyOutput.Dtor_obj(),
+	}
+}
+
+func Error_FromDafny(err AwsCryptographyDbEncryptionSdkDynamoDbTypes.Error) error {
+	// Service Errors
+	if err.Is_DynamoDbEncryptionException() {
+		return DynamoDbEncryptionException_FromDafny(err)
+	}
+
+	//DependentErrors
+	if err.Is_AwsCryptographyPrimitives() {
+		return awscryptographyprimitivessmithygenerated.Error_FromDafny(err.Dtor_AwsCryptographyPrimitives())
+	}
+
+	if err.Is_ComAmazonawsDynamodb() {
+		return comamazonawsdynamodbsmithygenerated.Error_FromDafny(err.Dtor_ComAmazonawsDynamodb())
+	}
+
+	if err.Is_AwsCryptographyMaterialProviders() {
+		return awscryptographymaterialproviderssmithygenerated.Error_FromDafny(err.Dtor_AwsCryptographyMaterialProviders())
+	}
+
+	if err.Is_AwsCryptographyDbEncryptionSdkStructuredEncryption() {
+		return awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.Error_FromDafny(err.Dtor_AwsCryptographyDbEncryptionSdkStructuredEncryption())
+	}
+
+	if err.Is_AwsCryptographyKeyStore() {
+		return awscryptographykeystoresmithygenerated.Error_FromDafny(err.Dtor_AwsCryptographyKeyStore())
+	}
+
+	//Unmodelled Errors
+	if err.Is_CollectionOfErrors() {
+		return CollectionOfErrors_Output_FromDafny(err)
+	}
+
+	return OpaqueError_Output_FromDafny(err)
+}
+
+func DynamoDbEncryptionConfig_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbEncryptionConfig) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbEncryptionConfig {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbEncryptionConfig{}
+
+}
+
+func AsSet_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.AsSet {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.AsSet{}
+
+}
+
+func MultiKeyStore_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.MultiKeyStore {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.MultiKeyStore{KeyFieldName: Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_keyFieldName_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.MultiKeyStore).Dtor_keyFieldName()),
+		CacheTTL:    Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_cacheTTL_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.MultiKeyStore).Dtor_cacheTTL()),
+		Cache:       Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_cache_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.MultiKeyStore).Dtor_cache().UnwrapOr(nil)),
+		PartitionId: Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_partitionId_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.MultiKeyStore).Dtor_partitionId().UnwrapOr(nil)),
+	}
+
+}
+
+func SingleKeyStore_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SingleKeyStore {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SingleKeyStore{KeyId: Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_keyId_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SingleKeyStore).Dtor_keyId()),
+		CacheTTL:    Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_cacheTTL_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SingleKeyStore).Dtor_cacheTTL()),
+		Cache:       Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_cache_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SingleKeyStore).Dtor_cache().UnwrapOr(nil)),
+		PartitionId: Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_partitionId_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SingleKeyStore).Dtor_partitionId().UnwrapOr(nil)),
+	}
+
+}
+
+func BeaconKeySource_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySource {
+	var union awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySource
+
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconKeySource)).Is_single() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySourceMembersingle{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconKeySource_single_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconKeySource)).Dtor_single())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconKeySource)).Is_multi() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySourceMembermulti{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconKeySource_multi_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconKeySource)).Dtor_multi())),
+		}
+	}
+
+	return union
+
+}
+
+func PartOnly_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PartOnly {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PartOnly{}
+
+}
+
+func Shared_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Shared {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Shared{Other: Aws_cryptography_dbEncryptionSdk_dynamoDb_Shared_other_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Shared).Dtor_other())}
+
+}
+
+func SharedSet_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SharedSet {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SharedSet{Other: Aws_cryptography_dbEncryptionSdk_dynamoDb_SharedSet_other_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SharedSet).Dtor_other())}
+
+}
+
+func BeaconStyle_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyle {
+	var union awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyle
+
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle)).Is_partOnly() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMemberpartOnly{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_partOnly_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle)).Dtor_partOnly())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle)).Is_shared() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMembershared{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_shared_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle)).Dtor_shared())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle)).Is_asSet() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMemberasSet{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_asSet_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle)).Dtor_asSet())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle)).Is_sharedSet() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMembersharedSet{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_sharedSet_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle)).Dtor_sharedSet())),
+		}
+	}
+
+	return union
+
+}
+
+func ConstructorPart_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.ConstructorPart {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.ConstructorPart{Name: Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorPart_name_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.ConstructorPart).Dtor_name()),
+		Required: Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorPart_required_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.ConstructorPart).Dtor_required()),
+	}
+
+}
+
+func Constructor_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Constructor {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Constructor{Parts: Aws_cryptography_dbEncryptionSdk_dynamoDb_Constructor_parts_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Constructor).Dtor_parts())}
+
+}
+
+func EncryptedPart_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedPart {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedPart{Name: Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPart_name_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedPart).Dtor_name()),
+		Prefix: Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPart_prefix_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedPart).Dtor_prefix()),
+	}
+
+}
+
+func SignedPart_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SignedPart {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SignedPart{Name: Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_name_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPart).Dtor_name()),
+		Prefix: Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_prefix_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPart).Dtor_prefix()),
+		Loc:    Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_loc_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPart).Dtor_loc().UnwrapOr(nil)),
+	}
+
+}
+
+func CompoundBeacon_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CompoundBeacon {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CompoundBeacon{Name: Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_name_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeacon).Dtor_name()),
+		Split:        Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_split_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeacon).Dtor_split()),
+		Encrypted:    Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_encrypted_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeacon).Dtor_encrypted().UnwrapOr(nil)),
+		Signed:       Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_signed_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeacon).Dtor_signed().UnwrapOr(nil)),
+		Constructors: Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_constructors_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeacon).Dtor_constructors().UnwrapOr(nil)),
+	}
+
+}
+
+func StandardBeacon_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.StandardBeacon {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.StandardBeacon{Name: Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_name_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon).Dtor_name()),
+		Length: Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_length_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon).Dtor_length()),
+		Loc:    Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_loc_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon).Dtor_loc().UnwrapOr(nil)),
+		Style:  Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_style_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon).Dtor_style().UnwrapOr(nil)),
+	}
+
+}
+
+func Insert_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Insert {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Insert{Literal: Aws_cryptography_dbEncryptionSdk_dynamoDb_Insert_literal_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Insert).Dtor_literal())}
+
+}
+
+func Lower_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Lower {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Lower{}
+
+}
+
+func GetPrefix_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetPrefix {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetPrefix{Length: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetPrefix_length_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetPrefix).Dtor_length())}
+
+}
+
+func GetSegment_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSegment {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSegment{Split: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegment_split_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegment).Dtor_split()),
+		Index: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegment_index_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegment).Dtor_index()),
+	}
+
+}
+
+func GetSegments_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSegments {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSegments{Split: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_split_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegments).Dtor_split()),
+		Low:  Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_low_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegments).Dtor_low()),
+		High: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_high_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegments).Dtor_high()),
+	}
+
+}
+
+func GetSubstring_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSubstring {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSubstring{Low: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSubstring_low_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSubstring).Dtor_low()),
+		High: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSubstring_high_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSubstring).Dtor_high()),
+	}
+
+}
+
+func GetSuffix_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSuffix {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSuffix{Length: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSuffix_length_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSuffix).Dtor_length())}
+
+}
+
+func Upper_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Upper {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Upper{}
+
+}
+
+func VirtualTransform_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransform {
+	var union awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransform
+
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Is_upper() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberupper{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_upper_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Dtor_upper())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Is_lower() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberlower{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_lower_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Dtor_lower())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Is_insert() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberinsert{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_insert_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Dtor_insert())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Is_prefix() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberprefix{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_prefix_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Dtor_prefix())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Is_suffix() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersuffix{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_suffix_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Dtor_suffix())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Is_substring() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersubstring{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_substring_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Dtor_substring())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Is_segment() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersegment{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_segment_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Dtor_segment())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Is_segments() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersegments{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_segments_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Dtor_segments())),
+		}
+	}
+
+	return union
+
+}
+
+func VirtualPart_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualPart {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualPart{Loc: Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPart_loc_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualPart).Dtor_loc()),
+		Trans: Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPart_trans_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualPart).Dtor_trans().UnwrapOr(nil)),
+	}
+
+}
+
+func VirtualField_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualField {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualField{Name: Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualField_name_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualField).Dtor_name()),
+		Parts: Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualField_parts_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualField).Dtor_parts()),
+	}
+
+}
+
+func BeaconVersion_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconVersion {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconVersion{Version: Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_version_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion).Dtor_version()),
+		KeyStore:        Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_keyStore_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion).Dtor_keyStore()),
+		KeySource:       Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_keySource_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion).Dtor_keySource()),
+		StandardBeacons: Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_standardBeacons_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion).Dtor_standardBeacons()),
+		CompoundBeacons: Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_compoundBeacons_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion).Dtor_compoundBeacons().UnwrapOr(nil)),
+		VirtualFields:   Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_virtualFields_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion).Dtor_virtualFields().UnwrapOr(nil)),
+		EncryptedParts:  Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_encryptedParts_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion).Dtor_encryptedParts().UnwrapOr(nil)),
+		SignedParts:     Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_signedParts_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion).Dtor_signedParts().UnwrapOr(nil)),
+	}
+
+}
+
+func LegacyPolicy_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyPolicy {
+	return func() awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyPolicy {
+		var u awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyPolicy
+		inputEnum := input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyPolicy)
+		index := -1
+		for allEnums := dafny.Iterate(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_LegacyPolicy_{}.AllSingletonConstructors()); ; {
+			enum, ok := allEnums()
+			if ok {
+				index++
+				if enum.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyPolicy).Equals(inputEnum) {
+					break
+				}
+			}
+		}
+
+		return u.Values()[index]
+	}()
+
+}
+
+func LegacyOverride_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyOverride {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyOverride{Policy: Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_policy_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyOverride).Dtor_policy()),
+		Encryptor:                 LegacyDynamoDbEncryptor_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyOverride).Dtor_encryptor()),
+		AttributeActionsOnEncrypt: Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_attributeActionsOnEncrypt_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyOverride).Dtor_attributeActionsOnEncrypt()),
+		DefaultAttributeFlag:      Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_defaultAttributeFlag_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyOverride).Dtor_defaultAttributeFlag().UnwrapOr(nil)),
+	}
+
+}
+
+func PlaintextOverride_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PlaintextOverride {
+	return func() awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PlaintextOverride {
+		var u awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PlaintextOverride
+		inputEnum := input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride)
+		index := -1
+		for allEnums := dafny.Iterate(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_PlaintextOverride_{}.AllSingletonConstructors()); ; {
+			enum, ok := allEnums()
+			if ok {
+				index++
+				if enum.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride).Equals(inputEnum) {
+					break
+				}
+			}
+		}
+
+		return u.Values()[index]
+	}()
+
+}
+
+func SearchConfig_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SearchConfig {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SearchConfig{Versions: Aws_cryptography_dbEncryptionSdk_dynamoDb_SearchConfig_versions_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SearchConfig).Dtor_versions()),
+		WriteVersion: Aws_cryptography_dbEncryptionSdk_dynamoDb_SearchConfig_writeVersion_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SearchConfig).Dtor_writeVersion()),
+	}
+
+}
+
+func DynamoDbTableEncryptionConfig_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbTableEncryptionConfig {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbTableEncryptionConfig{LogicalTableName: Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_logicalTableName_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_logicalTableName()),
+		PartitionKeyName:               Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_partitionKeyName_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_partitionKeyName()),
+		SortKeyName:                    Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_sortKeyName_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_sortKeyName().UnwrapOr(nil)),
+		Search:                         Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_search_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_search().UnwrapOr(nil)),
+		AttributeActionsOnEncrypt:      Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_attributeActionsOnEncrypt_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_attributeActionsOnEncrypt()),
+		AllowedUnsignedAttributes:      Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_allowedUnsignedAttributes_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_allowedUnsignedAttributes().UnwrapOr(nil)),
+		AllowedUnsignedAttributePrefix: Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_allowedUnsignedAttributePrefix_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_allowedUnsignedAttributePrefix().UnwrapOr(nil)),
+		AlgorithmSuiteId:               Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_algorithmSuiteId_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_algorithmSuiteId().UnwrapOr(nil)),
+		Keyring: func() awscryptographymaterialproviderssmithygeneratedtypes.IKeyring {
+			if input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_keyring().UnwrapOr(nil) == nil {
+				return nil
+			}
+			return awscryptographymaterialproviderssmithygenerated.Keyring_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_keyring().UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.IKeyring))
+		}(),
+		Cmm: func() awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsManager {
+			if input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_cmm().UnwrapOr(nil) == nil {
+				return nil
+			}
+			return awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsManager_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_cmm().UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager))
+		}(),
+		LegacyOverride:    Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_legacyOverride_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_legacyOverride().UnwrapOr(nil)),
+		PlaintextOverride: Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_plaintextOverride_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_plaintextOverride().UnwrapOr(nil)),
+	}
+
+}
+
+func DynamoDbTablesEncryptionConfig_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbTablesEncryptionConfig {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbTablesEncryptionConfig{TableEncryptionConfigs: Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTablesEncryptionConfig_tableEncryptionConfigs_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTablesEncryptionConfig).Dtor_tableEncryptionConfigs())}
+
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionInput_input_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetEncryptedDataKeyDescriptionUnion {
+	var union awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetEncryptedDataKeyDescriptionUnion
+
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionUnion)).Is_header() {
+		var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionUnion)).Dtor_header())
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetEncryptedDataKeyDescriptionUnionMemberheader{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionUnion_header_FromDafny(dataSource.UnwrapOr(nil))),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionUnion)).Is_item() {
+		var dataSource = Wrappers.Companion_Option_.Create_Some_((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetEncryptedDataKeyDescriptionUnion)).Dtor_item())
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetEncryptedDataKeyDescriptionUnionMemberitem{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionUnion_item_FromDafny(dataSource.UnwrapOr(nil))),
+		}
+	}
+
+	return union
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionUnion_header_FromDafny(input interface{}) []byte {
+	return func() []byte {
+		if input == nil {
+			return nil
+		}
+		a := input.(dafny.Sequence).ToArray().(dafny.GoNativeArray)
+		b := make([]byte, 0, a.Length())
+		for i := uint32(0); i < a.Length(); i++ {
+			b = append(b, a.Select(i).(byte))
+		}
+		return b
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionUnion_item_FromDafny(input interface{}) map[string]dynamodbtypes.AttributeValue {
+	var m map[string]dynamodbtypes.AttributeValue = make(map[string]dynamodbtypes.AttributeValue)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionOutput_EncryptedDataKeyDescriptionOutput_FromDafny(input interface{}) []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedDataKeyDescription {
+	fieldValue := make([]awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedDataKeyDescription, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescriptionList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescriptionList_member_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedDataKeyDescription {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedDataKeyDescription{KeyProviderId: Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescription_keyProviderId_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedDataKeyDescription).Dtor_keyProviderId()),
+		KeyProviderInfo:  Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescription_keyProviderInfo_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedDataKeyDescription).Dtor_keyProviderInfo().UnwrapOr(nil)),
+		BranchKeyId:      Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescription_branchKeyId_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedDataKeyDescription).Dtor_branchKeyId().UnwrapOr(nil)),
+		BranchKeyVersion: Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescription_branchKeyVersion_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedDataKeyDescription).Dtor_branchKeyVersion().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescription_keyProviderId_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescription_keyProviderInfo_FromDafny(input interface{}) *string {
+	return func() *string {
+		if input == nil {
+			return nil
+		}
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return &s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescription_branchKeyId_FromDafny(input interface{}) *string {
+	return func() *string {
+		if input == nil {
+			return nil
+		}
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return &s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedDataKeyDescription_branchKeyVersion_FromDafny(input interface{}) *string {
+	return func() *string {
+		if input == nil {
+			return nil
+		}
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return &s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetBranchKeyIdFromDdbKeyInput_ddbKey_FromDafny(input interface{}) map[string]dynamodbtypes.AttributeValue {
+	var m map[string]dynamodbtypes.AttributeValue = make(map[string]dynamodbtypes.AttributeValue)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_Key_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_Key_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetBranchKeyIdFromDdbKeyOutput_branchKeyId_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbEncryptionException_message_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_keyFieldName_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_cacheTTL_FromDafny(input interface{}) int32 {
+	return func() int32 {
+		var b = input.(int32)
+		return b
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_cache_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.CacheType {
+	var union awscryptographymaterialproviderssmithygeneratedtypes.CacheType
+	if input == nil {
+		return nil
+	}
+
+	if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_Default() {
+
+		union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberDefault{
+			Value: (awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_Default_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_Default())),
+		}
+	}
+	if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_No() {
+
+		union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberNo{
+			Value: (awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_No_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_No())),
+		}
+	}
+	if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_SingleThreaded() {
+
+		union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberSingleThreaded{
+			Value: (awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_SingleThreaded_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_SingleThreaded())),
+		}
+	}
+	if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_MultiThreaded() {
+
+		union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberMultiThreaded{
+			Value: (awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_MultiThreaded_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_MultiThreaded())),
+		}
+	}
+	if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_StormTracking() {
+
+		union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberStormTracking{
+			Value: (awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_StormTracking_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_StormTracking())),
+		}
+	}
+	if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_Shared() {
+
+		union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberShared{
+			Value: (awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsCache_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_Shared().(AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache))),
+		}
+	}
+
+	return union
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_partitionId_FromDafny(input interface{}) *string {
+	return func() *string {
+		if input == nil {
+			return nil
+		}
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return &s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_keyId_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_cacheTTL_FromDafny(input interface{}) int32 {
+	return func() int32 {
+		var b = input.(int32)
+		return b
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_cache_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.CacheType {
+	var union awscryptographymaterialproviderssmithygeneratedtypes.CacheType
+	if input == nil {
+		return nil
+	}
+
+	if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_Default() {
+
+		union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberDefault{
+			Value: (awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_Default_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_Default())),
+		}
+	}
+	if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_No() {
+
+		union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberNo{
+			Value: (awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_No_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_No())),
+		}
+	}
+	if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_SingleThreaded() {
+
+		union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberSingleThreaded{
+			Value: (awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_SingleThreaded_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_SingleThreaded())),
+		}
+	}
+	if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_MultiThreaded() {
+
+		union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberMultiThreaded{
+			Value: (awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_MultiThreaded_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_MultiThreaded())),
+		}
+	}
+	if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_StormTracking() {
+
+		union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberStormTracking{
+			Value: (awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_CacheType_StormTracking_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_StormTracking())),
+		}
+	}
+	if (input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Is_Shared() {
+
+		union = &awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberShared{
+			Value: (awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsCache_FromDafny((input.(AwsCryptographyMaterialProvidersTypes.CacheType)).Dtor_Shared().(AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache))),
+		}
+	}
+
+	return union
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_partitionId_FromDafny(input interface{}) *string {
+	return func() *string {
+		if input == nil {
+			return nil
+		}
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return &s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconKeySource_single_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SingleKeyStore {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SingleKeyStore{KeyId: Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_keyId_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SingleKeyStore).Dtor_keyId()),
+		CacheTTL:    Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_cacheTTL_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SingleKeyStore).Dtor_cacheTTL()),
+		Cache:       Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_cache_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SingleKeyStore).Dtor_cache().UnwrapOr(nil)),
+		PartitionId: Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_partitionId_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SingleKeyStore).Dtor_partitionId().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconKeySource_multi_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.MultiKeyStore {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.MultiKeyStore{KeyFieldName: Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_keyFieldName_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.MultiKeyStore).Dtor_keyFieldName()),
+		CacheTTL:    Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_cacheTTL_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.MultiKeyStore).Dtor_cacheTTL()),
+		Cache:       Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_cache_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.MultiKeyStore).Dtor_cache().UnwrapOr(nil)),
+		PartitionId: Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_partitionId_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.MultiKeyStore).Dtor_partitionId().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_Shared_other_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SharedSet_other_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_partOnly_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PartOnly {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PartOnly{}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_shared_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Shared {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Shared{Other: Aws_cryptography_dbEncryptionSdk_dynamoDb_Shared_other_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Shared).Dtor_other())}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_asSet_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.AsSet {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.AsSet{}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_sharedSet_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SharedSet {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SharedSet{Other: Aws_cryptography_dbEncryptionSdk_dynamoDb_SharedSet_other_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SharedSet).Dtor_other())}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorPart_name_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorPart_required_FromDafny(input interface{}) bool {
+	return input.(bool)
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_Constructor_parts_FromDafny(input interface{}) []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.ConstructorPart {
+	fieldValue := make([]awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.ConstructorPart, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorPartList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorPartList_member_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.ConstructorPart {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.ConstructorPart{Name: Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorPart_name_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.ConstructorPart).Dtor_name()),
+		Required: Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorPart_required_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.ConstructorPart).Dtor_required()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPart_name_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPart_prefix_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_name_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_prefix_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_loc_FromDafny(input interface{}) *string {
+	return func() *string {
+		if input == nil {
+			return nil
+		}
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return &s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_name_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_split_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_encrypted_FromDafny(input interface{}) []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedPart {
+	if input == nil {
+		return nil
+	}
+	fieldValue := make([]awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedPart, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPartsList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPartsList_member_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedPart {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedPart{Name: Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPart_name_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedPart).Dtor_name()),
+		Prefix: Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPart_prefix_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.EncryptedPart).Dtor_prefix()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_signed_FromDafny(input interface{}) []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SignedPart {
+	if input == nil {
+		return nil
+	}
+	fieldValue := make([]awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SignedPart, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPartsList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPartsList_member_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SignedPart {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SignedPart{Name: Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_name_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPart).Dtor_name()),
+		Prefix: Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_prefix_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPart).Dtor_prefix()),
+		Loc:    Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPart_loc_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SignedPart).Dtor_loc().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_constructors_FromDafny(input interface{}) []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Constructor {
+	if input == nil {
+		return nil
+	}
+	fieldValue := make([]awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Constructor, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_ConstructorList_member_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Constructor {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Constructor{Parts: Aws_cryptography_dbEncryptionSdk_dynamoDb_Constructor_parts_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Constructor).Dtor_parts())}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_name_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_length_FromDafny(input interface{}) int32 {
+	return func() int32 {
+		var b = input.(int32)
+		return b
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_loc_FromDafny(input interface{}) *string {
+	return func() *string {
+		if input == nil {
+			return nil
+		}
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return &s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_style_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyle {
+	var union awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyle
+	if input == nil {
+		return nil
+	}
+
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle)).Is_partOnly() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMemberpartOnly{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_partOnly_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle)).Dtor_partOnly())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle)).Is_shared() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMembershared{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_shared_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle)).Dtor_shared())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle)).Is_asSet() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMemberasSet{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_asSet_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle)).Dtor_asSet())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle)).Is_sharedSet() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconStyleMembersharedSet{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconStyle_sharedSet_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconStyle)).Dtor_sharedSet())),
+		}
+	}
+
+	return union
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_Insert_literal_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetPrefix_length_FromDafny(input interface{}) int32 {
+	return func() int32 {
+		var b = input.(int32)
+		return b
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegment_split_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegment_index_FromDafny(input interface{}) int32 {
+	return func() int32 {
+		var b = input.(int32)
+		return b
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_split_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_low_FromDafny(input interface{}) int32 {
+	return func() int32 {
+		var b = input.(int32)
+		return b
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_high_FromDafny(input interface{}) int32 {
+	return func() int32 {
+		var b = input.(int32)
+		return b
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSubstring_low_FromDafny(input interface{}) int32 {
+	return func() int32 {
+		var b = input.(int32)
+		return b
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSubstring_high_FromDafny(input interface{}) int32 {
+	return func() int32 {
+		var b = input.(int32)
+		return b
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSuffix_length_FromDafny(input interface{}) int32 {
+	return func() int32 {
+		var b = input.(int32)
+		return b
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_upper_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Upper {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Upper{}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_lower_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Lower {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Lower{}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_insert_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Insert {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.Insert{Literal: Aws_cryptography_dbEncryptionSdk_dynamoDb_Insert_literal_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.Insert).Dtor_literal())}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_prefix_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetPrefix {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetPrefix{Length: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetPrefix_length_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetPrefix).Dtor_length())}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_suffix_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSuffix {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSuffix{Length: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSuffix_length_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSuffix).Dtor_length())}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_substring_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSubstring {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSubstring{Low: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSubstring_low_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSubstring).Dtor_low()),
+		High: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSubstring_high_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSubstring).Dtor_high()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_segment_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSegment {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSegment{Split: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegment_split_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegment).Dtor_split()),
+		Index: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegment_index_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegment).Dtor_index()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_segments_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSegments {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.GetSegments{Split: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_split_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegments).Dtor_split()),
+		Low:  Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_low_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegments).Dtor_low()),
+		High: Aws_cryptography_dbEncryptionSdk_dynamoDb_GetSegments_high_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.GetSegments).Dtor_high()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPart_loc_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPart_trans_FromDafny(input interface{}) []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransform {
+	if input == nil {
+		return nil
+	}
+	fieldValue := make([]awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransform, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransformList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransformList_member_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransform {
+	var union awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransform
+
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Is_upper() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberupper{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_upper_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Dtor_upper())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Is_lower() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberlower{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_lower_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Dtor_lower())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Is_insert() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberinsert{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_insert_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Dtor_insert())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Is_prefix() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMemberprefix{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_prefix_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Dtor_prefix())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Is_suffix() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersuffix{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_suffix_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Dtor_suffix())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Is_substring() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersubstring{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_substring_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Dtor_substring())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Is_segment() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersegment{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_segment_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Dtor_segment())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Is_segments() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualTransformMembersegments{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransform_segments_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualTransform)).Dtor_segments())),
+		}
+	}
+
+	return union
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualField_name_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualField_parts_FromDafny(input interface{}) []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualPart {
+	fieldValue := make([]awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualPart, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPartList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPartList_member_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualPart {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualPart{Loc: Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPart_loc_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualPart).Dtor_loc()),
+		Trans: Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPart_trans_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualPart).Dtor_trans().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_version_FromDafny(input interface{}) int32 {
+	return func() int32 {
+		var b = input.(int32)
+		return b
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_keyStore_FromDafny(input interface{}) *awscryptographykeystoresmithygenerated.Client {
+	value, ok := input.(AwsCryptographyKeyStoreTypes.IKeyStoreClient)
+	if !ok {
+		panic("invalid type found.")
+	}
+	return &awscryptographykeystoresmithygenerated.Client{value}
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_keySource_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySource {
+	var union awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySource
+
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconKeySource)).Is_single() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySourceMembersingle{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconKeySource_single_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconKeySource)).Dtor_single())),
+		}
+	}
+	if (input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconKeySource)).Is_multi() {
+
+		union = &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconKeySourceMembermulti{
+			Value: (Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconKeySource_multi_FromDafny((input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconKeySource)).Dtor_multi())),
+		}
+	}
+
+	return union
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_standardBeacons_FromDafny(input interface{}) []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.StandardBeacon {
+	fieldValue := make([]awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.StandardBeacon, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeaconList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeaconList_member_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.StandardBeacon {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.StandardBeacon{Name: Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_name_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon).Dtor_name()),
+		Length: Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_length_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon).Dtor_length()),
+		Loc:    Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_loc_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon).Dtor_loc().UnwrapOr(nil)),
+		Style:  Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_style_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.StandardBeacon).Dtor_style().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_compoundBeacons_FromDafny(input interface{}) []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CompoundBeacon {
+	if input == nil {
+		return nil
+	}
+	fieldValue := make([]awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CompoundBeacon, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeaconList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeaconList_member_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CompoundBeacon {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.CompoundBeacon{Name: Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_name_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeacon).Dtor_name()),
+		Split:        Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_split_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeacon).Dtor_split()),
+		Encrypted:    Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_encrypted_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeacon).Dtor_encrypted().UnwrapOr(nil)),
+		Signed:       Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_signed_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeacon).Dtor_signed().UnwrapOr(nil)),
+		Constructors: Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_constructors_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompoundBeacon).Dtor_constructors().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_virtualFields_FromDafny(input interface{}) []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualField {
+	if input == nil {
+		return nil
+	}
+	fieldValue := make([]awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualField, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualFieldList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualFieldList_member_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualField {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.VirtualField{Name: Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualField_name_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualField).Dtor_name()),
+		Parts: Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualField_parts_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.VirtualField).Dtor_parts()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_encryptedParts_FromDafny(input interface{}) []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedPart {
+	if input == nil {
+		return nil
+	}
+	fieldValue := make([]awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.EncryptedPart, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_dynamoDb_EncryptedPartsList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_signedParts_FromDafny(input interface{}) []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SignedPart {
+	if input == nil {
+		return nil
+	}
+	fieldValue := make([]awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SignedPart, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_dynamoDb_SignedPartsList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_policy_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyPolicy {
+	return func() awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyPolicy {
+		var u awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyPolicy
+		inputEnum := input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyPolicy)
+		index := -1
+		for allEnums := dafny.Iterate(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_LegacyPolicy_{}.AllSingletonConstructors()); ; {
+			enum, ok := allEnums()
+			if ok {
+				index++
+				if enum.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyPolicy).Equals(inputEnum) {
+					break
+				}
+			}
+		}
+
+		return u.Values()[index]
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_attributeActionsOnEncrypt_FromDafny(input interface{}) map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction {
+	var m map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction = make(map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_key_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_value_FromDafny(input interface{}) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction {
+	return func() awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction {
+		var u awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction
+		inputEnum := input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction)
+		index := -1
+		for allEnums := dafny.Iterate(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CompanionStruct_CryptoAction_{}.AllSingletonConstructors()); ; {
+			enum, ok := allEnums()
+			if ok {
+				index++
+				if enum.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction).Equals(inputEnum) {
+					break
+				}
+			}
+		}
+
+		return u.Values()[index]
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_defaultAttributeFlag_FromDafny(input interface{}) *awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction {
+	return func() *awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction {
+		var u awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction
+		if input == nil {
+			return nil
+		}
+		inputEnum := input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction)
+		index := -1
+		for allEnums := dafny.Iterate(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CompanionStruct_CryptoAction_{}.AllSingletonConstructors()); ; {
+			enum, ok := allEnums()
+			if ok {
+				index++
+				if enum.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction).Equals(inputEnum) {
+					break
+				}
+			}
+		}
+
+		return &u.Values()[index]
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SearchConfig_versions_FromDafny(input interface{}) []awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconVersion {
+	fieldValue := make([]awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconVersion, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersionList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersionList_member_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconVersion {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.BeaconVersion{Version: Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_version_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion).Dtor_version()),
+		KeyStore:        Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_keyStore_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion).Dtor_keyStore()),
+		KeySource:       Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_keySource_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion).Dtor_keySource()),
+		StandardBeacons: Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_standardBeacons_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion).Dtor_standardBeacons()),
+		CompoundBeacons: Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_compoundBeacons_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion).Dtor_compoundBeacons().UnwrapOr(nil)),
+		VirtualFields:   Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_virtualFields_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion).Dtor_virtualFields().UnwrapOr(nil)),
+		EncryptedParts:  Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_encryptedParts_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion).Dtor_encryptedParts().UnwrapOr(nil)),
+		SignedParts:     Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_signedParts_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.BeaconVersion).Dtor_signedParts().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_SearchConfig_writeVersion_FromDafny(input interface{}) int32 {
+	return func() int32 {
+		var b = input.(int32)
+		return b
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_logicalTableName_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_partitionKeyName_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_sortKeyName_FromDafny(input interface{}) *string {
+	return func() *string {
+		if input == nil {
+			return nil
+		}
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return &s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_search_FromDafny(input interface{}) *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SearchConfig {
+	if input == nil {
+		return nil
+	}
+	return &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.SearchConfig{Versions: Aws_cryptography_dbEncryptionSdk_dynamoDb_SearchConfig_versions_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SearchConfig).Dtor_versions()),
+		WriteVersion: Aws_cryptography_dbEncryptionSdk_dynamoDb_SearchConfig_writeVersion_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.SearchConfig).Dtor_writeVersion()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_attributeActionsOnEncrypt_FromDafny(input interface{}) map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction {
+	var m map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction = make(map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_dbEncryptionSdk_dynamoDb_AttributeActions_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_allowedUnsignedAttributes_FromDafny(input interface{}) []string {
+	if input == nil {
+		return nil
+	}
+	fieldValue := make([]string, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeNameList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_allowedUnsignedAttributePrefix_FromDafny(input interface{}) *string {
+	return func() *string {
+		if input == nil {
+			return nil
+		}
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return &s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_algorithmSuiteId_FromDafny(input interface{}) *awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId {
+	return func() *awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId {
+		var u awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId
+		if input == nil {
+			return nil
+		}
+		inputEnum := input.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId)
+		index := -1
+		for allEnums := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_DBEAlgorithmSuiteId_{}.AllSingletonConstructors()); ; {
+			enum, ok := allEnums()
+			if ok {
+				index++
+				if enum.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId).Equals(inputEnum) {
+					break
+				}
+			}
+		}
+
+		return &u.Values()[index]
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_legacyOverride_FromDafny(input interface{}) *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyOverride {
+	if input == nil {
+		return nil
+	}
+	return &awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.LegacyOverride{Policy: Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_policy_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyOverride).Dtor_policy()),
+		Encryptor:                 LegacyDynamoDbEncryptor_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyOverride).Dtor_encryptor()),
+		AttributeActionsOnEncrypt: Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_attributeActionsOnEncrypt_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyOverride).Dtor_attributeActionsOnEncrypt()),
+		DefaultAttributeFlag:      Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_defaultAttributeFlag_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.LegacyOverride).Dtor_defaultAttributeFlag().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_plaintextOverride_FromDafny(input interface{}) *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PlaintextOverride {
+	return func() *awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PlaintextOverride {
+		var u awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.PlaintextOverride
+		if input == nil {
+			return nil
+		}
+		inputEnum := input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride)
+		index := -1
+		for allEnums := dafny.Iterate(AwsCryptographyDbEncryptionSdkDynamoDbTypes.CompanionStruct_PlaintextOverride_{}.AllSingletonConstructors()); ; {
+			enum, ok := allEnums()
+			if ok {
+				index++
+				if enum.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.PlaintextOverride).Equals(inputEnum) {
+					break
+				}
+			}
+		}
+
+		return &u.Values()[index]
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTablesEncryptionConfig_tableEncryptionConfigs_FromDafny(input interface{}) map[string]awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbTableEncryptionConfig {
+	var m map[string]awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbTableEncryptionConfig = make(map[string]awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbTableEncryptionConfig)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfigList_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfigList_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfigList_key_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfigList_value_FromDafny(input interface{}) awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbTableEncryptionConfig {
+	return awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbTableEncryptionConfig{LogicalTableName: Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_logicalTableName_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_logicalTableName()),
+		PartitionKeyName:               Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_partitionKeyName_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_partitionKeyName()),
+		SortKeyName:                    Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_sortKeyName_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_sortKeyName().UnwrapOr(nil)),
+		Search:                         Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_search_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_search().UnwrapOr(nil)),
+		AttributeActionsOnEncrypt:      Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_attributeActionsOnEncrypt_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_attributeActionsOnEncrypt()),
+		AllowedUnsignedAttributes:      Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_allowedUnsignedAttributes_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_allowedUnsignedAttributes().UnwrapOr(nil)),
+		AllowedUnsignedAttributePrefix: Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_allowedUnsignedAttributePrefix_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_allowedUnsignedAttributePrefix().UnwrapOr(nil)),
+		AlgorithmSuiteId:               Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_algorithmSuiteId_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_algorithmSuiteId().UnwrapOr(nil)),
+		Keyring: func() awscryptographymaterialproviderssmithygeneratedtypes.IKeyring {
+			if input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_keyring().UnwrapOr(nil) == nil {
+				return nil
+			}
+			return awscryptographymaterialproviderssmithygenerated.Keyring_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_keyring().UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.IKeyring))
+		}(),
+		Cmm: func() awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsManager {
+			if input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_cmm().UnwrapOr(nil) == nil {
+				return nil
+			}
+			return awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsManager_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_cmm().UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager))
+		}(),
+		LegacyOverride:    Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_legacyOverride_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_legacyOverride().UnwrapOr(nil)),
+		PlaintextOverride: Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_plaintextOverride_FromDafny(input.(AwsCryptographyDbEncryptionSdkDynamoDbTypes.DynamoDbTableEncryptionConfig).Dtor_plaintextOverride().UnwrapOr(nil)),
+	}
+}
diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes/enums.go b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes/enums.go
new file mode 100644
index 000000000..53b10ce6b
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes/enums.go
@@ -0,0 +1,35 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes
+
+type LegacyPolicy string
+
+const (
+	LegacyPolicyForceLegacyEncryptAllowLegacyDecrypt   LegacyPolicy = "FORCE_LEGACY_ENCRYPT_ALLOW_LEGACY_DECRYPT"
+	LegacyPolicyForbidLegacyEncryptAllowLegacyDecrypt  LegacyPolicy = "FORBID_LEGACY_ENCRYPT_ALLOW_LEGACY_DECRYPT"
+	LegacyPolicyForbidLegacyEncryptForbidLegacyDecrypt LegacyPolicy = "FORBID_LEGACY_ENCRYPT_FORBID_LEGACY_DECRYPT"
+)
+
+func (LegacyPolicy) Values() []LegacyPolicy {
+	return []LegacyPolicy{
+		"FORCE_LEGACY_ENCRYPT_ALLOW_LEGACY_DECRYPT",
+		"FORBID_LEGACY_ENCRYPT_ALLOW_LEGACY_DECRYPT",
+		"FORBID_LEGACY_ENCRYPT_FORBID_LEGACY_DECRYPT",
+	}
+}
+
+type PlaintextOverride string
+
+const (
+	PlaintextOverrideForcePlaintextWriteAllowPlaintextRead   PlaintextOverride = "FORCE_PLAINTEXT_WRITE_ALLOW_PLAINTEXT_READ"
+	PlaintextOverrideForbidPlaintextWriteAllowPlaintextRead  PlaintextOverride = "FORBID_PLAINTEXT_WRITE_ALLOW_PLAINTEXT_READ"
+	PlaintextOverrideForbidPlaintextWriteForbidPlaintextRead PlaintextOverride = "FORBID_PLAINTEXT_WRITE_FORBID_PLAINTEXT_READ"
+)
+
+func (PlaintextOverride) Values() []PlaintextOverride {
+	return []PlaintextOverride{
+		"FORCE_PLAINTEXT_WRITE_ALLOW_PLAINTEXT_READ",
+		"FORBID_PLAINTEXT_WRITE_ALLOW_PLAINTEXT_READ",
+		"FORBID_PLAINTEXT_WRITE_FORBID_PLAINTEXT_READ",
+	}
+}
diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes/errors.go b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes/errors.go
new file mode 100644
index 000000000..777cb6302
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes/errors.go
@@ -0,0 +1,17 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes
+
+import (
+	"fmt"
+)
+
+type DynamoDbEncryptionException struct {
+	DynamoDbEncryptionBaseException
+	Message           string
+	ErrorCodeOverride *string
+}
+
+func (e DynamoDbEncryptionException) Error() string {
+	return fmt.Sprintf("%s: %s", e.ErrorCodeOverride, e.Message)
+}
diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes/types.go b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes/types.go
new file mode 100644
index 000000000..42d53d241
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes/types.go
@@ -0,0 +1,1391 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes
+
+import (
+	"fmt"
+
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographykeystoresmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/test/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes"
+	dynamodbtypes "github.com/aws/aws-sdk-go-v2/service/dynamodb/types"
+)
+
+type DynamoDbKeyBranchKeyIdSupplierReference struct {
+}
+
+func (input DynamoDbKeyBranchKeyIdSupplierReference) Validate() error {
+
+	return nil
+}
+
+type CreateDynamoDbEncryptionBranchKeyIdSupplierInput struct {
+	DdbKeyBranchKeyIdSupplier IDynamoDbKeyBranchKeyIdSupplier
+}
+
+func (input CreateDynamoDbEncryptionBranchKeyIdSupplierInput) Validate() error {
+
+	return nil
+}
+
+type CreateDynamoDbEncryptionBranchKeyIdSupplierOutput struct {
+	BranchKeyIdSupplier awscryptographymaterialproviderssmithygeneratedtypes.IBranchKeyIdSupplier
+}
+
+func (input CreateDynamoDbEncryptionBranchKeyIdSupplierOutput) Validate() error {
+
+	return nil
+}
+
+type EncryptedDataKeyDescription struct {
+	KeyProviderId string
+
+	BranchKeyId *string
+
+	BranchKeyVersion *string
+
+	KeyProviderInfo *string
+}
+
+func (input EncryptedDataKeyDescription) Validate() error {
+
+	return nil
+}
+
+type GetEncryptedDataKeyDescriptionOutput struct {
+	EncryptedDataKeyDescriptionOutput []EncryptedDataKeyDescription
+}
+
+func (input GetEncryptedDataKeyDescriptionOutput) Validate() error {
+	if input.EncryptedDataKeyDescriptionOutput == nil {
+		return fmt.Errorf("input.EncryptedDataKeyDescriptionOutput is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionOutput_EncryptedDataKeyDescriptionOutput_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionOutput_EncryptedDataKeyDescriptionOutput_Validate()
+	}
+
+	return nil
+}
+
+func (input GetEncryptedDataKeyDescriptionOutput) Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionOutput_EncryptedDataKeyDescriptionOutput_Validate() error {
+	for _, item := range input.EncryptedDataKeyDescriptionOutput {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+
+type GetEncryptedDataKeyDescriptionInput struct {
+	Input GetEncryptedDataKeyDescriptionUnion
+}
+
+func (input GetEncryptedDataKeyDescriptionInput) Validate() error {
+	if input.Input == nil {
+		return fmt.Errorf("input.Input is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionInput_input_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionInput_input_Validate()
+	}
+
+	return nil
+}
+
+func (input GetEncryptedDataKeyDescriptionInput) Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionInput_input_Validate() error {
+	if input.Input == nil {
+		return nil
+	}
+	switch unionType := input.Input.(type) {
+	case *GetEncryptedDataKeyDescriptionUnionMemberheader:
+	case *GetEncryptedDataKeyDescriptionUnionMemberitem:
+		if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionUnion_item_Validate(unionType.Value) != nil {
+			return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionUnion_item_Validate(unionType.Value)
+		}
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input GetEncryptedDataKeyDescriptionInput) Com_amazonaws_dynamodb_AttributeMap_value_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+	case *dynamodbtypes.AttributeValueMemberL:
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input GetEncryptedDataKeyDescriptionInput) Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+		if input.Com_amazonaws_dynamodb_AttributeValue_M_Validate(unionType.Value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeValue_M_Validate(unionType.Value)
+		}
+	case *dynamodbtypes.AttributeValueMemberL:
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input GetEncryptedDataKeyDescriptionInput) Com_amazonaws_dynamodb_AttributeValue_M_Validate(Value map[string]dynamodbtypes.AttributeValue) error {
+	for key, value := range Value {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+		if input.Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(value) != nil {
+			return input.Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(value)
+		}
+	}
+
+	return nil
+}
+func (input GetEncryptedDataKeyDescriptionInput) Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+	case *dynamodbtypes.AttributeValueMemberL:
+		if input.Com_amazonaws_dynamodb_AttributeValue_L_Validate(unionType.Value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeValue_L_Validate(unionType.Value)
+		}
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input GetEncryptedDataKeyDescriptionInput) Com_amazonaws_dynamodb_AttributeValue_L_Validate(Value []dynamodbtypes.AttributeValue) error {
+	for _, item := range Value {
+		if input.Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(item) != nil {
+			return input.Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(item)
+		}
+	}
+
+	return nil
+}
+func (input GetEncryptedDataKeyDescriptionInput) Aws_cryptography_dbEncryptionSdk_dynamoDb_GetEncryptedDataKeyDescriptionUnion_item_Validate(Value map[string]dynamodbtypes.AttributeValue) error {
+	for key, value := range Value {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+		if input.Com_amazonaws_dynamodb_AttributeMap_value_Validate(value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeMap_value_Validate(value)
+		}
+	}
+
+	return nil
+}
+
+type AsSet struct {
+}
+
+func (input AsSet) Validate() error {
+
+	return nil
+}
+
+type AtomicPrimitivesReference struct {
+}
+
+func (input AtomicPrimitivesReference) Validate() error {
+
+	return nil
+}
+
+type MultiKeyStore struct {
+	CacheTTL int32
+
+	KeyFieldName string
+
+	Cache awscryptographymaterialproviderssmithygeneratedtypes.CacheType
+
+	PartitionId *string
+}
+
+func (input MultiKeyStore) Validate() error {
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_cache_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_cache_Validate()
+	}
+
+	return nil
+}
+
+func (input MultiKeyStore) Aws_cryptography_dbEncryptionSdk_dynamoDb_MultiKeyStore_cache_Validate() error {
+	if input.Cache == nil {
+		return nil
+	}
+	switch unionType := input.Cache.(type) {
+	case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberDefault:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberNo:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberSingleThreaded:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberMultiThreaded:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberStormTracking:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberShared:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+
+type SingleKeyStore struct {
+	CacheTTL int32
+
+	KeyId string
+
+	Cache awscryptographymaterialproviderssmithygeneratedtypes.CacheType
+
+	PartitionId *string
+}
+
+func (input SingleKeyStore) Validate() error {
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_cache_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_cache_Validate()
+	}
+
+	return nil
+}
+
+func (input SingleKeyStore) Aws_cryptography_dbEncryptionSdk_dynamoDb_SingleKeyStore_cache_Validate() error {
+	if input.Cache == nil {
+		return nil
+	}
+	switch unionType := input.Cache.(type) {
+	case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberDefault:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberNo:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberSingleThreaded:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberMultiThreaded:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberStormTracking:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberShared:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+
+type PartOnly struct {
+}
+
+func (input PartOnly) Validate() error {
+
+	return nil
+}
+
+type Shared struct {
+	Other string
+}
+
+func (input Shared) Validate() error {
+
+	return nil
+}
+
+type SharedSet struct {
+	Other string
+}
+
+func (input SharedSet) Validate() error {
+
+	return nil
+}
+
+type ConstructorPart struct {
+	Name string
+
+	Required bool
+}
+
+func (input ConstructorPart) Validate() error {
+
+	return nil
+}
+
+type Constructor struct {
+	Parts []ConstructorPart
+}
+
+func (input Constructor) Validate() error {
+	if len(input.Parts) < 1 {
+		return fmt.Errorf("ConstructorPartList has a minimum length of 1 but has the length of %d.", len(input.Parts))
+	}
+	if input.Parts == nil {
+		return fmt.Errorf("input.Parts is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_Constructor_parts_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_Constructor_parts_Validate()
+	}
+
+	return nil
+}
+
+func (input Constructor) Aws_cryptography_dbEncryptionSdk_dynamoDb_Constructor_parts_Validate() error {
+	for _, item := range input.Parts {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+
+type EncryptedPart struct {
+	Name string
+
+	Prefix string
+}
+
+func (input EncryptedPart) Validate() error {
+	if len(input.Prefix) < 1 {
+		return fmt.Errorf("Prefix has a minimum length of 1 but has the length of %d.", len(input.Prefix))
+	}
+
+	return nil
+}
+
+type SignedPart struct {
+	Name string
+
+	Prefix string
+
+	Loc *string
+}
+
+func (input SignedPart) Validate() error {
+	if len(input.Prefix) < 1 {
+		return fmt.Errorf("Prefix has a minimum length of 1 but has the length of %d.", len(input.Prefix))
+	}
+	if input.Loc != nil {
+		if len(*input.Loc) < 1 {
+			return fmt.Errorf("TerminalLocation has a minimum length of 1 but has the length of %d.", len(*input.Loc))
+		}
+	}
+
+	return nil
+}
+
+type CompoundBeacon struct {
+	Name string
+
+	Split string
+
+	Constructors []Constructor
+
+	Encrypted []EncryptedPart
+
+	Signed []SignedPart
+}
+
+func (input CompoundBeacon) Validate() error {
+	if len(input.Split) < 1 {
+		return fmt.Errorf("Char has a minimum length of 1 but has the length of %d.", len(input.Split))
+	}
+	if len(input.Split) > 1 {
+		return fmt.Errorf("Char has a maximum length of 1 but has the length of %d.", len(input.Split))
+	}
+	if len(input.Constructors) < 1 {
+		return fmt.Errorf("ConstructorList has a minimum length of 1 but has the length of %d.", len(input.Constructors))
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_constructors_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_constructors_Validate()
+	}
+	if len(input.Encrypted) < 1 {
+		return fmt.Errorf("EncryptedPartsList has a minimum length of 1 but has the length of %d.", len(input.Encrypted))
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_encrypted_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_encrypted_Validate()
+	}
+	if len(input.Signed) < 1 {
+		return fmt.Errorf("SignedPartsList has a minimum length of 1 but has the length of %d.", len(input.Signed))
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_signed_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_signed_Validate()
+	}
+
+	return nil
+}
+
+func (input CompoundBeacon) Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_constructors_Validate() error {
+	for _, item := range input.Constructors {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+func (input CompoundBeacon) Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_encrypted_Validate() error {
+	for _, item := range input.Encrypted {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+func (input CompoundBeacon) Aws_cryptography_dbEncryptionSdk_dynamoDb_CompoundBeacon_signed_Validate() error {
+	for _, item := range input.Signed {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+
+type KeyStoreReference struct {
+}
+
+func (input KeyStoreReference) Validate() error {
+
+	return nil
+}
+
+type StandardBeacon struct {
+	Length int32
+
+	Name string
+
+	Loc *string
+
+	Style BeaconStyle
+}
+
+func (input StandardBeacon) Validate() error {
+	if input.Length < 1 {
+		return fmt.Errorf("BeaconBitLength has a minimum of 1 but has the value of %d.", input.Length)
+	}
+	if input.Length > 63 {
+		return fmt.Errorf("BeaconBitLength has a maximum of 63 but has the value of %d.", input.Length)
+	}
+	if input.Loc != nil {
+		if len(*input.Loc) < 1 {
+			return fmt.Errorf("TerminalLocation has a minimum length of 1 but has the length of %d.", len(*input.Loc))
+		}
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_style_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_style_Validate()
+	}
+
+	return nil
+}
+
+func (input StandardBeacon) Aws_cryptography_dbEncryptionSdk_dynamoDb_StandardBeacon_style_Validate() error {
+	if input.Style == nil {
+		return nil
+	}
+	switch unionType := input.Style.(type) {
+	case *BeaconStyleMemberpartOnly:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *BeaconStyleMembershared:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *BeaconStyleMemberasSet:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *BeaconStyleMembersharedSet:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+
+type Insert struct {
+	Literal string
+}
+
+func (input Insert) Validate() error {
+
+	return nil
+}
+
+type Lower struct {
+}
+
+func (input Lower) Validate() error {
+
+	return nil
+}
+
+type GetPrefix struct {
+	Length int32
+}
+
+func (input GetPrefix) Validate() error {
+
+	return nil
+}
+
+type GetSegment struct {
+	Index int32
+
+	Split string
+}
+
+func (input GetSegment) Validate() error {
+	if len(input.Split) < 1 {
+		return fmt.Errorf("Char has a minimum length of 1 but has the length of %d.", len(input.Split))
+	}
+	if len(input.Split) > 1 {
+		return fmt.Errorf("Char has a maximum length of 1 but has the length of %d.", len(input.Split))
+	}
+
+	return nil
+}
+
+type GetSegments struct {
+	High int32
+
+	Low int32
+
+	Split string
+}
+
+func (input GetSegments) Validate() error {
+	if len(input.Split) < 1 {
+		return fmt.Errorf("Char has a minimum length of 1 but has the length of %d.", len(input.Split))
+	}
+	if len(input.Split) > 1 {
+		return fmt.Errorf("Char has a maximum length of 1 but has the length of %d.", len(input.Split))
+	}
+
+	return nil
+}
+
+type GetSubstring struct {
+	High int32
+
+	Low int32
+}
+
+func (input GetSubstring) Validate() error {
+
+	return nil
+}
+
+type GetSuffix struct {
+	Length int32
+}
+
+func (input GetSuffix) Validate() error {
+
+	return nil
+}
+
+type Upper struct {
+}
+
+func (input Upper) Validate() error {
+
+	return nil
+}
+
+type VirtualPart struct {
+	Loc string
+
+	Trans []VirtualTransform
+}
+
+func (input VirtualPart) Validate() error {
+	if len(input.Loc) < 1 {
+		return fmt.Errorf("TerminalLocation has a minimum length of 1 but has the length of %d.", len(input.Loc))
+	}
+	if len(input.Trans) < 1 {
+		return fmt.Errorf("VirtualTransformList has a minimum length of 1 but has the length of %d.", len(input.Trans))
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPart_trans_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPart_trans_Validate()
+	}
+
+	return nil
+}
+
+func (input VirtualPart) Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransformList_member_Validate(Value VirtualTransform) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *VirtualTransformMemberupper:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *VirtualTransformMemberlower:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *VirtualTransformMemberinsert:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *VirtualTransformMemberprefix:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *VirtualTransformMembersuffix:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *VirtualTransformMembersubstring:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *VirtualTransformMembersegment:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *VirtualTransformMembersegments:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input VirtualPart) Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualPart_trans_Validate() error {
+	for _, item := range input.Trans {
+		if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransformList_member_Validate(item) != nil {
+			return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualTransformList_member_Validate(item)
+		}
+	}
+
+	return nil
+}
+
+type VirtualField struct {
+	Name string
+
+	Parts []VirtualPart
+}
+
+func (input VirtualField) Validate() error {
+	if len(input.Parts) < 1 {
+		return fmt.Errorf("VirtualPartList has a minimum length of 1 but has the length of %d.", len(input.Parts))
+	}
+	if input.Parts == nil {
+		return fmt.Errorf("input.Parts is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualField_parts_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualField_parts_Validate()
+	}
+
+	return nil
+}
+
+func (input VirtualField) Aws_cryptography_dbEncryptionSdk_dynamoDb_VirtualField_parts_Validate() error {
+	for _, item := range input.Parts {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+
+type BeaconVersion struct {
+	KeySource BeaconKeySource
+
+	KeyStore *awscryptographykeystoresmithygenerated.Client
+
+	StandardBeacons []StandardBeacon
+
+	Version int32
+
+	CompoundBeacons []CompoundBeacon
+
+	EncryptedParts []EncryptedPart
+
+	SignedParts []SignedPart
+
+	VirtualFields []VirtualField
+}
+
+func (input BeaconVersion) Validate() error {
+	if input.KeySource == nil {
+		return fmt.Errorf("input.KeySource is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_keySource_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_keySource_Validate()
+	}
+	if len(input.StandardBeacons) < 1 {
+		return fmt.Errorf("StandardBeaconList has a minimum length of 1 but has the length of %d.", len(input.StandardBeacons))
+	}
+	if input.StandardBeacons == nil {
+		return fmt.Errorf("input.StandardBeacons is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_standardBeacons_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_standardBeacons_Validate()
+	}
+	if input.Version < 1 {
+		return fmt.Errorf("VersionNumber has a minimum of 1 but has the value of %d.", input.Version)
+	}
+	if len(input.CompoundBeacons) < 1 {
+		return fmt.Errorf("CompoundBeaconList has a minimum length of 1 but has the length of %d.", len(input.CompoundBeacons))
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_compoundBeacons_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_compoundBeacons_Validate()
+	}
+	if len(input.EncryptedParts) < 1 {
+		return fmt.Errorf("EncryptedPartsList has a minimum length of 1 but has the length of %d.", len(input.EncryptedParts))
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_encryptedParts_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_encryptedParts_Validate()
+	}
+	if len(input.SignedParts) < 1 {
+		return fmt.Errorf("SignedPartsList has a minimum length of 1 but has the length of %d.", len(input.SignedParts))
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_signedParts_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_signedParts_Validate()
+	}
+	if len(input.VirtualFields) < 1 {
+		return fmt.Errorf("VirtualFieldList has a minimum length of 1 but has the length of %d.", len(input.VirtualFields))
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_virtualFields_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_virtualFields_Validate()
+	}
+
+	return nil
+}
+
+func (input BeaconVersion) Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_keySource_Validate() error {
+	if input.KeySource == nil {
+		return nil
+	}
+	switch unionType := input.KeySource.(type) {
+	case *BeaconKeySourceMembersingle:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	case *BeaconKeySourceMembermulti:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input BeaconVersion) Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_standardBeacons_Validate() error {
+	for _, item := range input.StandardBeacons {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+func (input BeaconVersion) Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_compoundBeacons_Validate() error {
+	for _, item := range input.CompoundBeacons {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+func (input BeaconVersion) Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_encryptedParts_Validate() error {
+	for _, item := range input.EncryptedParts {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+func (input BeaconVersion) Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_signedParts_Validate() error {
+	for _, item := range input.SignedParts {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+func (input BeaconVersion) Aws_cryptography_dbEncryptionSdk_dynamoDb_BeaconVersion_virtualFields_Validate() error {
+	for _, item := range input.VirtualFields {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+
+type DynamoDbEncryptionConfig struct {
+}
+
+func (input DynamoDbEncryptionConfig) Validate() error {
+
+	return nil
+}
+
+type GetBranchKeyIdFromDdbKeyOutput struct {
+	BranchKeyId string
+}
+
+func (input GetBranchKeyIdFromDdbKeyOutput) Validate() error {
+
+	return nil
+}
+
+type LegacyDynamoDbEncryptorReference struct {
+}
+
+func (input LegacyDynamoDbEncryptorReference) Validate() error {
+
+	return nil
+}
+
+type LegacyOverride struct {
+	AttributeActionsOnEncrypt map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction
+
+	Encryptor ILegacyDynamoDbEncryptor
+
+	Policy LegacyPolicy
+
+	DefaultAttributeFlag *awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction
+}
+
+func (input LegacyOverride) Validate() error {
+	if input.AttributeActionsOnEncrypt == nil {
+		return fmt.Errorf("input.AttributeActionsOnEncrypt is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_attributeActionsOnEncrypt_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_attributeActionsOnEncrypt_Validate()
+	}
+
+	return nil
+}
+
+func (input LegacyOverride) Aws_cryptography_dbEncryptionSdk_dynamoDb_LegacyOverride_attributeActionsOnEncrypt_Validate() error {
+	for key, _ := range input.AttributeActionsOnEncrypt {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+	}
+
+	return nil
+}
+
+type SearchConfig struct {
+	Versions []BeaconVersion
+
+	WriteVersion int32
+}
+
+func (input SearchConfig) Validate() error {
+	if len(input.Versions) < 1 {
+		return fmt.Errorf("BeaconVersionList has a minimum length of 1 but has the length of %d.", len(input.Versions))
+	}
+	if len(input.Versions) > 1 {
+		return fmt.Errorf("BeaconVersionList has a maximum length of 1 but has the length of %d.", len(input.Versions))
+	}
+	if input.Versions == nil {
+		return fmt.Errorf("input.Versions is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_SearchConfig_versions_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_SearchConfig_versions_Validate()
+	}
+	if input.WriteVersion < 1 {
+		return fmt.Errorf("VersionNumber has a minimum of 1 but has the value of %d.", input.WriteVersion)
+	}
+
+	return nil
+}
+
+func (input SearchConfig) Aws_cryptography_dbEncryptionSdk_dynamoDb_SearchConfig_versions_Validate() error {
+	for _, item := range input.Versions {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+
+type DynamoDbTableEncryptionConfig struct {
+	AttributeActionsOnEncrypt map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction
+
+	LogicalTableName string
+
+	PartitionKeyName string
+
+	AlgorithmSuiteId *awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId
+
+	AllowedUnsignedAttributePrefix *string
+
+	AllowedUnsignedAttributes []string
+
+	Cmm awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsManager
+
+	Keyring awscryptographymaterialproviderssmithygeneratedtypes.IKeyring
+
+	LegacyOverride *LegacyOverride
+
+	PlaintextOverride *PlaintextOverride
+
+	Search *SearchConfig
+
+	SortKeyName *string
+}
+
+func (input DynamoDbTableEncryptionConfig) Validate() error {
+	if input.AttributeActionsOnEncrypt == nil {
+		return fmt.Errorf("input.AttributeActionsOnEncrypt is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_attributeActionsOnEncrypt_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_attributeActionsOnEncrypt_Validate()
+	}
+	if len(input.PartitionKeyName) < 1 {
+		return fmt.Errorf("KeySchemaAttributeName has a minimum length of 1 but has the length of %d.", len(input.PartitionKeyName))
+	}
+	if len(input.PartitionKeyName) > 255 {
+		return fmt.Errorf("KeySchemaAttributeName has a maximum length of 255 but has the length of %d.", len(input.PartitionKeyName))
+	}
+	if len(input.AllowedUnsignedAttributes) < 1 {
+		return fmt.Errorf("AttributeNameList has a minimum length of 1 but has the length of %d.", len(input.AllowedUnsignedAttributes))
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_allowedUnsignedAttributes_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_allowedUnsignedAttributes_Validate()
+	}
+	if input.LegacyOverride != nil {
+		if input.LegacyOverride.Validate() != nil {
+			return input.LegacyOverride.Validate()
+		}
+
+	}
+	if input.Search != nil {
+		if input.Search.Validate() != nil {
+			return input.Search.Validate()
+		}
+
+	}
+	if input.SortKeyName != nil {
+		if len(*input.SortKeyName) < 1 {
+			return fmt.Errorf("KeySchemaAttributeName has a minimum length of 1 but has the length of %d.", len(*input.SortKeyName))
+		}
+		if len(*input.SortKeyName) > 255 {
+			return fmt.Errorf("KeySchemaAttributeName has a maximum length of 255 but has the length of %d.", len(*input.SortKeyName))
+		}
+	}
+
+	return nil
+}
+
+func (input DynamoDbTableEncryptionConfig) Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_attributeActionsOnEncrypt_Validate() error {
+	for key, _ := range input.AttributeActionsOnEncrypt {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+	}
+
+	return nil
+}
+func (input DynamoDbTableEncryptionConfig) Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTableEncryptionConfig_allowedUnsignedAttributes_Validate() error {
+	for _, item := range input.AllowedUnsignedAttributes {
+		if len(item) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(item))
+		}
+		if len(item) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(item))
+		}
+	}
+
+	return nil
+}
+
+type DynamoDbTablesEncryptionConfig struct {
+	TableEncryptionConfigs map[string]DynamoDbTableEncryptionConfig
+}
+
+func (input DynamoDbTablesEncryptionConfig) Validate() error {
+	if input.TableEncryptionConfigs == nil {
+		return fmt.Errorf("input.TableEncryptionConfigs is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTablesEncryptionConfig_tableEncryptionConfigs_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTablesEncryptionConfig_tableEncryptionConfigs_Validate()
+	}
+
+	return nil
+}
+
+func (input DynamoDbTablesEncryptionConfig) Aws_cryptography_dbEncryptionSdk_dynamoDb_DynamoDbTablesEncryptionConfig_tableEncryptionConfigs_Validate() error {
+	for key, value := range input.TableEncryptionConfigs {
+		if len(key) < 3 {
+			return fmt.Errorf("TableName has a minimum length of 3 but has the length of %d.", len(key))
+		}
+		if len(key) > 255 {
+			return fmt.Errorf("TableName has a maximum length of 255 but has the length of %d.", len(key))
+		}
+		if value.Validate() != nil {
+			return value.Validate()
+		}
+	}
+
+	return nil
+}
+
+type GetBranchKeyIdFromDdbKeyInput struct {
+	DdbKey map[string]dynamodbtypes.AttributeValue
+}
+
+func (input GetBranchKeyIdFromDdbKeyInput) Validate() error {
+	if input.DdbKey == nil {
+		return fmt.Errorf("input.DdbKey is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_GetBranchKeyIdFromDdbKeyInput_ddbKey_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_GetBranchKeyIdFromDdbKeyInput_ddbKey_Validate()
+	}
+
+	return nil
+}
+
+func (input GetBranchKeyIdFromDdbKeyInput) Com_amazonaws_dynamodb_Key_value_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+	case *dynamodbtypes.AttributeValueMemberL:
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input GetBranchKeyIdFromDdbKeyInput) Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+		if input.Com_amazonaws_dynamodb_AttributeValue_M_Validate(unionType.Value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeValue_M_Validate(unionType.Value)
+		}
+	case *dynamodbtypes.AttributeValueMemberL:
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input GetBranchKeyIdFromDdbKeyInput) Com_amazonaws_dynamodb_AttributeValue_M_Validate(Value map[string]dynamodbtypes.AttributeValue) error {
+	for key, value := range Value {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+		if input.Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(value) != nil {
+			return input.Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(value)
+		}
+	}
+
+	return nil
+}
+func (input GetBranchKeyIdFromDdbKeyInput) Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+	case *dynamodbtypes.AttributeValueMemberL:
+		if input.Com_amazonaws_dynamodb_AttributeValue_L_Validate(unionType.Value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeValue_L_Validate(unionType.Value)
+		}
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input GetBranchKeyIdFromDdbKeyInput) Com_amazonaws_dynamodb_AttributeValue_L_Validate(Value []dynamodbtypes.AttributeValue) error {
+	for _, item := range Value {
+		if input.Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(item) != nil {
+			return input.Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(item)
+		}
+	}
+
+	return nil
+}
+func (input GetBranchKeyIdFromDdbKeyInput) Aws_cryptography_dbEncryptionSdk_dynamoDb_GetBranchKeyIdFromDdbKeyInput_ddbKey_Validate() error {
+	for key, value := range input.DdbKey {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+		if input.Com_amazonaws_dynamodb_Key_value_Validate(value) != nil {
+			return input.Com_amazonaws_dynamodb_Key_value_Validate(value)
+		}
+	}
+
+	return nil
+}
+
+// BeaconKeySourceMembermulti
+// BeaconKeySourceMembersingle
+type BeaconKeySource interface {
+	isBeaconKeySource()
+}
+
+type BeaconKeySourceMembermulti struct {
+	Value MultiKeyStore
+}
+
+func (*BeaconKeySourceMembermulti) isBeaconKeySource() {}
+
+type BeaconKeySourceMembersingle struct {
+	Value SingleKeyStore
+}
+
+func (*BeaconKeySourceMembersingle) isBeaconKeySource() {}
+
+// BeaconStyleMemberasSet
+// BeaconStyleMemberpartOnly
+// BeaconStyleMembershared
+// BeaconStyleMembersharedSet
+type BeaconStyle interface {
+	isBeaconStyle()
+}
+
+type BeaconStyleMemberasSet struct {
+	Value AsSet
+}
+
+func (*BeaconStyleMemberasSet) isBeaconStyle() {}
+
+type BeaconStyleMemberpartOnly struct {
+	Value PartOnly
+}
+
+func (*BeaconStyleMemberpartOnly) isBeaconStyle() {}
+
+type BeaconStyleMembershared struct {
+	Value Shared
+}
+
+func (*BeaconStyleMembershared) isBeaconStyle() {}
+
+type BeaconStyleMembersharedSet struct {
+	Value SharedSet
+}
+
+func (*BeaconStyleMembersharedSet) isBeaconStyle() {}
+
+// GetEncryptedDataKeyDescriptionUnionMemberheader
+// GetEncryptedDataKeyDescriptionUnionMemberitem
+type GetEncryptedDataKeyDescriptionUnion interface {
+	isGetEncryptedDataKeyDescriptionUnion()
+}
+
+type GetEncryptedDataKeyDescriptionUnionMemberheader struct {
+	Value []byte
+}
+
+func (*GetEncryptedDataKeyDescriptionUnionMemberheader) isGetEncryptedDataKeyDescriptionUnion() {}
+
+type GetEncryptedDataKeyDescriptionUnionMemberitem struct {
+	Value map[string]dynamodbtypes.AttributeValue
+}
+
+func (*GetEncryptedDataKeyDescriptionUnionMemberitem) isGetEncryptedDataKeyDescriptionUnion() {}
+
+// VirtualTransformMemberinsert
+// VirtualTransformMemberlower
+// VirtualTransformMemberprefix
+// VirtualTransformMembersegment
+// VirtualTransformMembersegments
+// VirtualTransformMembersubstring
+// VirtualTransformMembersuffix
+// VirtualTransformMemberupper
+type VirtualTransform interface {
+	isVirtualTransform()
+}
+
+type VirtualTransformMemberinsert struct {
+	Value Insert
+}
+
+func (*VirtualTransformMemberinsert) isVirtualTransform() {}
+
+type VirtualTransformMemberlower struct {
+	Value Lower
+}
+
+func (*VirtualTransformMemberlower) isVirtualTransform() {}
+
+type VirtualTransformMemberprefix struct {
+	Value GetPrefix
+}
+
+func (*VirtualTransformMemberprefix) isVirtualTransform() {}
+
+type VirtualTransformMembersegment struct {
+	Value GetSegment
+}
+
+func (*VirtualTransformMembersegment) isVirtualTransform() {}
+
+type VirtualTransformMembersegments struct {
+	Value GetSegments
+}
+
+func (*VirtualTransformMembersegments) isVirtualTransform() {}
+
+type VirtualTransformMembersubstring struct {
+	Value GetSubstring
+}
+
+func (*VirtualTransformMembersubstring) isVirtualTransform() {}
+
+type VirtualTransformMembersuffix struct {
+	Value GetSuffix
+}
+
+func (*VirtualTransformMembersuffix) isVirtualTransform() {}
+
+type VirtualTransformMemberupper struct {
+	Value Upper
+}
+
+func (*VirtualTransformMemberupper) isVirtualTransform() {}
+
+type DynamoDbEncryptionBaseException interface {
+	// This is a dummy method to allow type assertion since Go empty interfaces
+	// aren't useful for type assertion checks. No concrete class is expected to implement
+	// this method. This is also not exported.
+	interfaceBindingMethod()
+}
+
+type IDynamoDbKeyBranchKeyIdSupplier interface {
+	GetBranchKeyIdFromDdbKey(GetBranchKeyIdFromDdbKeyInput) (*GetBranchKeyIdFromDdbKeyOutput, error)
+}
+
+type ILegacyDynamoDbEncryptor interface {
+}
diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes/unmodelled_errors.go b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes/unmodelled_errors.go
new file mode 100644
index 000000000..d7d920e5f
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes/unmodelled_errors.go
@@ -0,0 +1,26 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes
+
+import (
+	"fmt"
+)
+
+type CollectionOfErrors struct {
+	DynamoDbEncryptionBaseException
+	ListOfErrors []error
+	Message      string
+}
+
+func (e CollectionOfErrors) Error() string {
+	return fmt.Sprintf("message: %s\n err %v", e.Message, e.ListOfErrors)
+}
+
+type OpaqueError struct {
+	DynamoDbEncryptionBaseException
+	ErrObject interface{}
+}
+
+func (e OpaqueError) Error() string {
+	return fmt.Sprintf("message: %v", e.ErrObject)
+}
diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygenerated/api_client.go b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygenerated/api_client.go
new file mode 100644
index 000000000..a904df22a
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygenerated/api_client.go
@@ -0,0 +1,595 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbtransformssmithygenerated
+
+import (
+	"context"
+
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/DynamoDbEncryptionTransforms"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygenerated"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes"
+)
+
+type Client struct {
+	DafnyClient AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.IDynamoDbEncryptionTransformsClient
+}
+
+func NewClient(clientConfig awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbTablesEncryptionConfig) (*Client, error) {
+	var dafnyConfig = awscryptographydbencryptionsdkdynamodbsmithygenerated.DynamoDbTablesEncryptionConfig_ToDafny(clientConfig)
+	var dafny_response = DynamoDbEncryptionTransforms.Companion_Default___.DynamoDbEncryptionTransforms(dafnyConfig)
+	if dafny_response.Is_Failure() {
+		panic("Client construction failed. This should never happen")
+	}
+	var dafnyClient = dafny_response.Extract().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.IDynamoDbEncryptionTransformsClient)
+	client := &Client{dafnyClient}
+	return client, nil
+}
+
+func (client *Client) PutItemInputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemInputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemInputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemInputTransformInput = PutItemInputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.PutItemInputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = PutItemInputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemInputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) PutItemOutputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemOutputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemOutputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemOutputTransformInput = PutItemOutputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.PutItemOutputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = PutItemOutputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemOutputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) GetItemInputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemInputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemInputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemInputTransformInput = GetItemInputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.GetItemInputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = GetItemInputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemInputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) GetItemOutputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemOutputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemOutputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemOutputTransformInput = GetItemOutputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.GetItemOutputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = GetItemOutputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemOutputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) BatchWriteItemInputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemInputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemInputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemInputTransformInput = BatchWriteItemInputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.BatchWriteItemInputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = BatchWriteItemInputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemInputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) BatchWriteItemOutputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemOutputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemOutputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemOutputTransformInput = BatchWriteItemOutputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.BatchWriteItemOutputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = BatchWriteItemOutputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemOutputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) BatchGetItemInputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemInputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemInputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemInputTransformInput = BatchGetItemInputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.BatchGetItemInputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = BatchGetItemInputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemInputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) BatchGetItemOutputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemOutputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemOutputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemOutputTransformInput = BatchGetItemOutputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.BatchGetItemOutputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = BatchGetItemOutputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemOutputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) ScanInputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanInputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanInputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanInputTransformInput = ScanInputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.ScanInputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = ScanInputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanInputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) ScanOutputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanOutputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanOutputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanOutputTransformInput = ScanOutputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.ScanOutputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = ScanOutputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanOutputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) QueryInputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryInputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryInputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryInputTransformInput = QueryInputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.QueryInputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = QueryInputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryInputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) QueryOutputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryOutputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryOutputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryOutputTransformInput = QueryOutputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.QueryOutputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = QueryOutputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryOutputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) TransactWriteItemsInputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsInputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsInputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsInputTransformInput = TransactWriteItemsInputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.TransactWriteItemsInputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = TransactWriteItemsInputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsInputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) TransactWriteItemsOutputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsOutputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsOutputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsOutputTransformInput = TransactWriteItemsOutputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.TransactWriteItemsOutputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = TransactWriteItemsOutputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsOutputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) UpdateItemInputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemInputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemInputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemInputTransformInput = UpdateItemInputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.UpdateItemInputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = UpdateItemInputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemInputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) UpdateItemOutputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemOutputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemOutputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemOutputTransformInput = UpdateItemOutputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.UpdateItemOutputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = UpdateItemOutputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemOutputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) DeleteItemInputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemInputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemInputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemInputTransformInput = DeleteItemInputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.DeleteItemInputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = DeleteItemInputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemInputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) DeleteItemOutputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemOutputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemOutputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemOutputTransformInput = DeleteItemOutputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.DeleteItemOutputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = DeleteItemOutputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemOutputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) TransactGetItemsInputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsInputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsInputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsInputTransformInput = TransactGetItemsInputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.TransactGetItemsInputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = TransactGetItemsInputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsInputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) TransactGetItemsOutputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsOutputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsOutputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsOutputTransformInput = TransactGetItemsOutputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.TransactGetItemsOutputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = TransactGetItemsOutputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsOutputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) ExecuteStatementInputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementInputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementInputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementInputTransformInput = ExecuteStatementInputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.ExecuteStatementInputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = ExecuteStatementInputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementInputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) ExecuteStatementOutputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementOutputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementOutputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementOutputTransformInput = ExecuteStatementOutputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.ExecuteStatementOutputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = ExecuteStatementOutputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementOutputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) BatchExecuteStatementInputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementInputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementInputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementInputTransformInput = BatchExecuteStatementInputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.BatchExecuteStatementInputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = BatchExecuteStatementInputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementInputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) BatchExecuteStatementOutputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementOutputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementOutputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementOutputTransformInput = BatchExecuteStatementOutputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.BatchExecuteStatementOutputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = BatchExecuteStatementOutputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementOutputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) ExecuteTransactionInputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionInputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionInputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionInputTransformInput = ExecuteTransactionInputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.ExecuteTransactionInputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = ExecuteTransactionInputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionInputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) ExecuteTransactionOutputTransform(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionOutputTransformInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionOutputTransformOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionOutputTransformInput = ExecuteTransactionOutputTransformInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.ExecuteTransactionOutputTransform(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = ExecuteTransactionOutputTransformOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionOutputTransformOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) ResolveAttributes(ctx context.Context, params awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ResolveAttributesInput) (*awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ResolveAttributesOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ResolveAttributesInput = ResolveAttributesInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.ResolveAttributes(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = ResolveAttributesOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ResolveAttributesOutput))
+	return &native_response, nil
+
+}
diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygenerated/to_dafny.go b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygenerated/to_dafny.go
new file mode 100644
index 000000000..74b0cca02
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygenerated/to_dafny.go
@@ -0,0 +1,1127 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbtransformssmithygenerated
+
+import (
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/comamazonawsdynamodbsmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygenerated"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes"
+	"github.com/aws/aws-sdk-go-v2/service/dynamodb"
+	dynamodbtypes "github.com/aws/aws-sdk-go-v2/service/dynamodb/types"
+	"github.com/aws/smithy-go"
+	"github.com/dafny-lang/DafnyRuntimeGo/v4/dafny"
+)
+
+func BatchExecuteStatementInputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementInputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementInputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementInputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchExecuteStatementInputTransformInput_.Create_BatchExecuteStatementInputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementInputTransformInput_sdkInput_ToDafny(nativeInput.SdkInput))
+	}()
+
+}
+
+func BatchExecuteStatementInputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementInputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementInputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementInputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchExecuteStatementInputTransformOutput_.Create_BatchExecuteStatementInputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementInputTransformOutput_transformedInput_ToDafny(nativeOutput.TransformedInput))
+	}()
+
+}
+
+func BatchExecuteStatementOutputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementOutputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementOutputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementOutputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchExecuteStatementOutputTransformInput_.Create_BatchExecuteStatementOutputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementOutputTransformInput_sdkOutput_ToDafny(nativeInput.SdkOutput), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementOutputTransformInput_originalInput_ToDafny(nativeInput.OriginalInput))
+	}()
+
+}
+
+func BatchExecuteStatementOutputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementOutputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementOutputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementOutputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchExecuteStatementOutputTransformOutput_.Create_BatchExecuteStatementOutputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementOutputTransformOutput_transformedOutput_ToDafny(nativeOutput.TransformedOutput))
+	}()
+
+}
+
+func BatchGetItemInputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemInputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemInputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemInputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchGetItemInputTransformInput_.Create_BatchGetItemInputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemInputTransformInput_sdkInput_ToDafny(nativeInput.SdkInput))
+	}()
+
+}
+
+func BatchGetItemInputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemInputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemInputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemInputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchGetItemInputTransformOutput_.Create_BatchGetItemInputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemInputTransformOutput_transformedInput_ToDafny(nativeOutput.TransformedInput))
+	}()
+
+}
+
+func BatchGetItemOutputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemOutputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemOutputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemOutputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchGetItemOutputTransformInput_.Create_BatchGetItemOutputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemOutputTransformInput_sdkOutput_ToDafny(nativeInput.SdkOutput), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemOutputTransformInput_originalInput_ToDafny(nativeInput.OriginalInput))
+	}()
+
+}
+
+func BatchGetItemOutputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemOutputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemOutputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemOutputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchGetItemOutputTransformOutput_.Create_BatchGetItemOutputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemOutputTransformOutput_transformedOutput_ToDafny(nativeOutput.TransformedOutput))
+	}()
+
+}
+
+func BatchWriteItemInputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemInputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemInputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemInputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchWriteItemInputTransformInput_.Create_BatchWriteItemInputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemInputTransformInput_sdkInput_ToDafny(nativeInput.SdkInput))
+	}()
+
+}
+
+func BatchWriteItemInputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemInputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemInputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemInputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchWriteItemInputTransformOutput_.Create_BatchWriteItemInputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemInputTransformOutput_transformedInput_ToDafny(nativeOutput.TransformedInput))
+	}()
+
+}
+
+func BatchWriteItemOutputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemOutputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemOutputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemOutputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchWriteItemOutputTransformInput_.Create_BatchWriteItemOutputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemOutputTransformInput_sdkOutput_ToDafny(nativeInput.SdkOutput), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemOutputTransformInput_originalInput_ToDafny(nativeInput.OriginalInput))
+	}()
+
+}
+
+func BatchWriteItemOutputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemOutputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemOutputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemOutputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_BatchWriteItemOutputTransformOutput_.Create_BatchWriteItemOutputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemOutputTransformOutput_transformedOutput_ToDafny(nativeOutput.TransformedOutput))
+	}()
+
+}
+
+func DeleteItemInputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemInputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemInputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemInputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_DeleteItemInputTransformInput_.Create_DeleteItemInputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemInputTransformInput_sdkInput_ToDafny(nativeInput.SdkInput))
+	}()
+
+}
+
+func DeleteItemInputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemInputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemInputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemInputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_DeleteItemInputTransformOutput_.Create_DeleteItemInputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemInputTransformOutput_transformedInput_ToDafny(nativeOutput.TransformedInput))
+	}()
+
+}
+
+func DeleteItemOutputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemOutputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemOutputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemOutputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_DeleteItemOutputTransformInput_.Create_DeleteItemOutputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemOutputTransformInput_sdkOutput_ToDafny(nativeInput.SdkOutput), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemOutputTransformInput_originalInput_ToDafny(nativeInput.OriginalInput))
+	}()
+
+}
+
+func DeleteItemOutputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemOutputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemOutputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemOutputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_DeleteItemOutputTransformOutput_.Create_DeleteItemOutputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemOutputTransformOutput_transformedOutput_ToDafny(nativeOutput.TransformedOutput))
+	}()
+
+}
+
+func ExecuteStatementInputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementInputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementInputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementInputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ExecuteStatementInputTransformInput_.Create_ExecuteStatementInputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementInputTransformInput_sdkInput_ToDafny(nativeInput.SdkInput))
+	}()
+
+}
+
+func ExecuteStatementInputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementInputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementInputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementInputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ExecuteStatementInputTransformOutput_.Create_ExecuteStatementInputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementInputTransformOutput_transformedInput_ToDafny(nativeOutput.TransformedInput))
+	}()
+
+}
+
+func ExecuteStatementOutputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementOutputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementOutputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementOutputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ExecuteStatementOutputTransformInput_.Create_ExecuteStatementOutputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementOutputTransformInput_sdkOutput_ToDafny(nativeInput.SdkOutput), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementOutputTransformInput_originalInput_ToDafny(nativeInput.OriginalInput))
+	}()
+
+}
+
+func ExecuteStatementOutputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementOutputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementOutputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementOutputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ExecuteStatementOutputTransformOutput_.Create_ExecuteStatementOutputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementOutputTransformOutput_transformedOutput_ToDafny(nativeOutput.TransformedOutput))
+	}()
+
+}
+
+func ExecuteTransactionInputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionInputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionInputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionInputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ExecuteTransactionInputTransformInput_.Create_ExecuteTransactionInputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionInputTransformInput_sdkInput_ToDafny(nativeInput.SdkInput))
+	}()
+
+}
+
+func ExecuteTransactionInputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionInputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionInputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionInputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ExecuteTransactionInputTransformOutput_.Create_ExecuteTransactionInputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionInputTransformOutput_transformedInput_ToDafny(nativeOutput.TransformedInput))
+	}()
+
+}
+
+func ExecuteTransactionOutputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionOutputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionOutputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionOutputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ExecuteTransactionOutputTransformInput_.Create_ExecuteTransactionOutputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionOutputTransformInput_sdkOutput_ToDafny(nativeInput.SdkOutput), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionOutputTransformInput_originalInput_ToDafny(nativeInput.OriginalInput))
+	}()
+
+}
+
+func ExecuteTransactionOutputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionOutputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionOutputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionOutputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ExecuteTransactionOutputTransformOutput_.Create_ExecuteTransactionOutputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionOutputTransformOutput_transformedOutput_ToDafny(nativeOutput.TransformedOutput))
+	}()
+
+}
+
+func GetItemInputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemInputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemInputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemInputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_GetItemInputTransformInput_.Create_GetItemInputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemInputTransformInput_sdkInput_ToDafny(nativeInput.SdkInput))
+	}()
+
+}
+
+func GetItemInputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemInputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemInputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemInputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_GetItemInputTransformOutput_.Create_GetItemInputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemInputTransformOutput_transformedInput_ToDafny(nativeOutput.TransformedInput))
+	}()
+
+}
+
+func GetItemOutputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemOutputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemOutputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemOutputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_GetItemOutputTransformInput_.Create_GetItemOutputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemOutputTransformInput_sdkOutput_ToDafny(nativeInput.SdkOutput), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemOutputTransformInput_originalInput_ToDafny(nativeInput.OriginalInput))
+	}()
+
+}
+
+func GetItemOutputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemOutputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemOutputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemOutputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_GetItemOutputTransformOutput_.Create_GetItemOutputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemOutputTransformOutput_transformedOutput_ToDafny(nativeOutput.TransformedOutput))
+	}()
+
+}
+
+func PutItemInputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemInputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemInputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemInputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_PutItemInputTransformInput_.Create_PutItemInputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemInputTransformInput_sdkInput_ToDafny(nativeInput.SdkInput))
+	}()
+
+}
+
+func PutItemInputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemInputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemInputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemInputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_PutItemInputTransformOutput_.Create_PutItemInputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemInputTransformOutput_transformedInput_ToDafny(nativeOutput.TransformedInput))
+	}()
+
+}
+
+func PutItemOutputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemOutputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemOutputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemOutputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_PutItemOutputTransformInput_.Create_PutItemOutputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemOutputTransformInput_sdkOutput_ToDafny(nativeInput.SdkOutput), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemOutputTransformInput_originalInput_ToDafny(nativeInput.OriginalInput))
+	}()
+
+}
+
+func PutItemOutputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemOutputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemOutputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemOutputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_PutItemOutputTransformOutput_.Create_PutItemOutputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemOutputTransformOutput_transformedOutput_ToDafny(nativeOutput.TransformedOutput))
+	}()
+
+}
+
+func QueryInputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryInputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryInputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryInputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_QueryInputTransformInput_.Create_QueryInputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryInputTransformInput_sdkInput_ToDafny(nativeInput.SdkInput))
+	}()
+
+}
+
+func QueryInputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryInputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryInputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryInputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_QueryInputTransformOutput_.Create_QueryInputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryInputTransformOutput_transformedInput_ToDafny(nativeOutput.TransformedInput))
+	}()
+
+}
+
+func QueryOutputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryOutputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryOutputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryOutputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_QueryOutputTransformInput_.Create_QueryOutputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryOutputTransformInput_sdkOutput_ToDafny(nativeInput.SdkOutput), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryOutputTransformInput_originalInput_ToDafny(nativeInput.OriginalInput))
+	}()
+
+}
+
+func QueryOutputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryOutputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryOutputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryOutputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_QueryOutputTransformOutput_.Create_QueryOutputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryOutputTransformOutput_transformedOutput_ToDafny(nativeOutput.TransformedOutput))
+	}()
+
+}
+
+func ResolveAttributesInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ResolveAttributesInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ResolveAttributesInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ResolveAttributesInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ResolveAttributesInput_.Create_ResolveAttributesInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesInput_TableName_ToDafny(nativeInput.TableName), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesInput_Item_ToDafny(nativeInput.Item), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesInput_Version_ToDafny(nativeInput.Version))
+	}()
+
+}
+
+func ResolveAttributesOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ResolveAttributesOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ResolveAttributesOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ResolveAttributesOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ResolveAttributesOutput_.Create_ResolveAttributesOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesOutput_VirtualFields_ToDafny(nativeOutput.VirtualFields), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesOutput_CompoundBeacons_ToDafny(nativeOutput.CompoundBeacons))
+	}()
+
+}
+
+func ScanInputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanInputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanInputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanInputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ScanInputTransformInput_.Create_ScanInputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanInputTransformInput_sdkInput_ToDafny(nativeInput.SdkInput))
+	}()
+
+}
+
+func ScanInputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanInputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanInputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanInputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ScanInputTransformOutput_.Create_ScanInputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanInputTransformOutput_transformedInput_ToDafny(nativeOutput.TransformedInput))
+	}()
+
+}
+
+func ScanOutputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanOutputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanOutputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanOutputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ScanOutputTransformInput_.Create_ScanOutputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanOutputTransformInput_sdkOutput_ToDafny(nativeInput.SdkOutput), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanOutputTransformInput_originalInput_ToDafny(nativeInput.OriginalInput))
+	}()
+
+}
+
+func ScanOutputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanOutputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanOutputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanOutputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_ScanOutputTransformOutput_.Create_ScanOutputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanOutputTransformOutput_transformedOutput_ToDafny(nativeOutput.TransformedOutput))
+	}()
+
+}
+
+func TransactGetItemsInputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsInputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsInputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsInputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_TransactGetItemsInputTransformInput_.Create_TransactGetItemsInputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsInputTransformInput_sdkInput_ToDafny(nativeInput.SdkInput))
+	}()
+
+}
+
+func TransactGetItemsInputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsInputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsInputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsInputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_TransactGetItemsInputTransformOutput_.Create_TransactGetItemsInputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsInputTransformOutput_transformedInput_ToDafny(nativeOutput.TransformedInput))
+	}()
+
+}
+
+func TransactGetItemsOutputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsOutputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsOutputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsOutputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_TransactGetItemsOutputTransformInput_.Create_TransactGetItemsOutputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsOutputTransformInput_sdkOutput_ToDafny(nativeInput.SdkOutput), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsOutputTransformInput_originalInput_ToDafny(nativeInput.OriginalInput))
+	}()
+
+}
+
+func TransactGetItemsOutputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsOutputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsOutputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsOutputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_TransactGetItemsOutputTransformOutput_.Create_TransactGetItemsOutputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsOutputTransformOutput_transformedOutput_ToDafny(nativeOutput.TransformedOutput))
+	}()
+
+}
+
+func TransactWriteItemsInputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsInputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsInputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsInputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_TransactWriteItemsInputTransformInput_.Create_TransactWriteItemsInputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsInputTransformInput_sdkInput_ToDafny(nativeInput.SdkInput))
+	}()
+
+}
+
+func TransactWriteItemsInputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsInputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsInputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsInputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_TransactWriteItemsInputTransformOutput_.Create_TransactWriteItemsInputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsInputTransformOutput_transformedInput_ToDafny(nativeOutput.TransformedInput))
+	}()
+
+}
+
+func TransactWriteItemsOutputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsOutputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsOutputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsOutputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_TransactWriteItemsOutputTransformInput_.Create_TransactWriteItemsOutputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsOutputTransformInput_sdkOutput_ToDafny(nativeInput.SdkOutput), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsOutputTransformInput_originalInput_ToDafny(nativeInput.OriginalInput))
+	}()
+
+}
+
+func TransactWriteItemsOutputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsOutputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsOutputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsOutputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_TransactWriteItemsOutputTransformOutput_.Create_TransactWriteItemsOutputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsOutputTransformOutput_transformedOutput_ToDafny(nativeOutput.TransformedOutput))
+	}()
+
+}
+
+func UpdateItemInputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemInputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemInputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemInputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_UpdateItemInputTransformInput_.Create_UpdateItemInputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemInputTransformInput_sdkInput_ToDafny(nativeInput.SdkInput))
+	}()
+
+}
+
+func UpdateItemInputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemInputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemInputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemInputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_UpdateItemInputTransformOutput_.Create_UpdateItemInputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemInputTransformOutput_transformedInput_ToDafny(nativeOutput.TransformedInput))
+	}()
+
+}
+
+func UpdateItemOutputTransformInput_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemOutputTransformInput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemOutputTransformInput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemOutputTransformInput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_UpdateItemOutputTransformInput_.Create_UpdateItemOutputTransformInput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemOutputTransformInput_sdkOutput_ToDafny(nativeInput.SdkOutput), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemOutputTransformInput_originalInput_ToDafny(nativeInput.OriginalInput))
+	}()
+
+}
+
+func UpdateItemOutputTransformOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemOutputTransformOutput) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemOutputTransformOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemOutputTransformOutput {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_UpdateItemOutputTransformOutput_.Create_UpdateItemOutputTransformOutput_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemOutputTransformOutput_transformedOutput_ToDafny(nativeOutput.TransformedOutput))
+	}()
+
+}
+
+func DynamoDbEncryptionTransformsException_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DynamoDbEncryptionTransformsException) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error {
+	return func() AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error {
+
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_DynamoDbEncryptionTransformsException_(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DynamoDbEncryptionTransformsException_message_ToDafny(nativeInput.Message))
+	}()
+
+}
+
+func CollectionOfErrors_Input_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.CollectionOfErrors) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error {
+	var e []interface{}
+	for _, i2 := range nativeInput.ListOfErrors {
+		e = append(e, Error_ToDafny(i2))
+	}
+	return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_CollectionOfErrors_(dafny.SeqOf(e...), func() dafny.Sequence {
+		res, err := UTF8.DecodeFromNativeGoByteArray([]byte(nativeInput.Message))
+		if err != nil {
+			panic("invalid utf8 input provided")
+		}
+		return res
+	}())
+}
+func OpaqueError_Input_ToDafny(nativeInput awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error {
+	return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_Opaque_(nativeInput.ErrObject)
+}
+
+func Error_ToDafny(err error) AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error {
+	switch err.(type) {
+	// Service Errors
+	case awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DynamoDbEncryptionTransformsException:
+		return DynamoDbEncryptionTransformsException_ToDafny(err.(awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DynamoDbEncryptionTransformsException))
+
+	//DependentErrors
+	case awscryptographydbencryptionsdkdynamodbsmithygeneratedtypes.DynamoDbEncryptionBaseException:
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkDynamoDb_(awscryptographydbencryptionsdkdynamodbsmithygenerated.Error_ToDafny(err))
+
+	case awscryptographydbencryptionsdkdynamodbitemencryptorsmithygeneratedtypes.DynamoDbItemEncryptorBaseException:
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptor_(awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated.Error_ToDafny(err))
+
+	case awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredEncryptionBaseException:
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_AwsCryptographyDbEncryptionSdkStructuredEncryption_(awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.Error_ToDafny(err))
+
+	case awscryptographymaterialproviderssmithygeneratedtypes.AwsCryptographicMaterialProvidersBaseException:
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_AwsCryptographyMaterialProviders_(awscryptographymaterialproviderssmithygenerated.Error_ToDafny(err))
+
+	case *smithy.OperationError:
+		if err.(*smithy.OperationError).Service() == "DynamoDB" {
+			DynamoDBError := comamazonawsdynamodbsmithygenerated.Error_ToDafny(err)
+			return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_ComAmazonawsDynamodb_(DynamoDBError)
+		}
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_Opaque_(err)
+
+	case smithy.APIError:
+		DynamoDBError := comamazonawsdynamodbsmithygenerated.Error_ToDafny(err)
+		if !DynamoDBError.Is_OpaqueWithText() {
+			return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_ComAmazonawsDynamodb_(DynamoDBError)
+		}
+		return AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Companion_Error_.Create_Opaque_(err)
+
+	//Unmodelled Errors
+	case awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.CollectionOfErrors:
+		return CollectionOfErrors_Input_ToDafny(err.(awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.CollectionOfErrors))
+
+	default:
+		error, ok := err.(awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError)
+		if !ok {
+			panic("Error is not an OpaqueError")
+		}
+		return OpaqueError_Input_ToDafny(error)
+	}
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementInputTransformInput_sdkInput_ToDafny(input dynamodb.BatchExecuteStatementInput) ComAmazonawsDynamodbTypes.BatchExecuteStatementInput {
+	return func() ComAmazonawsDynamodbTypes.BatchExecuteStatementInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_BatchExecuteStatementInput_.Create_BatchExecuteStatementInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementInput_Statements_ToDafny(input.Statements), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementInputTransformOutput_transformedInput_ToDafny(input dynamodb.BatchExecuteStatementInput) ComAmazonawsDynamodbTypes.BatchExecuteStatementInput {
+	return func() ComAmazonawsDynamodbTypes.BatchExecuteStatementInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_BatchExecuteStatementInput_.Create_BatchExecuteStatementInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementInput_Statements_ToDafny(input.Statements), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementOutputTransformInput_sdkOutput_ToDafny(input dynamodb.BatchExecuteStatementOutput) ComAmazonawsDynamodbTypes.BatchExecuteStatementOutput {
+	return func() ComAmazonawsDynamodbTypes.BatchExecuteStatementOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_BatchExecuteStatementOutput_.Create_BatchExecuteStatementOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementOutput_Responses_ToDafny(input.Responses), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementOutputTransformInput_originalInput_ToDafny(input dynamodb.BatchExecuteStatementInput) ComAmazonawsDynamodbTypes.BatchExecuteStatementInput {
+	return func() ComAmazonawsDynamodbTypes.BatchExecuteStatementInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_BatchExecuteStatementInput_.Create_BatchExecuteStatementInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementInput_Statements_ToDafny(input.Statements), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementOutputTransformOutput_transformedOutput_ToDafny(input dynamodb.BatchExecuteStatementOutput) ComAmazonawsDynamodbTypes.BatchExecuteStatementOutput {
+	return func() ComAmazonawsDynamodbTypes.BatchExecuteStatementOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_BatchExecuteStatementOutput_.Create_BatchExecuteStatementOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementOutput_Responses_ToDafny(input.Responses), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemInputTransformInput_sdkInput_ToDafny(input dynamodb.BatchGetItemInput) ComAmazonawsDynamodbTypes.BatchGetItemInput {
+	return func() ComAmazonawsDynamodbTypes.BatchGetItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_BatchGetItemInput_.Create_BatchGetItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemInput_RequestItems_ToDafny(input.RequestItems), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemInputTransformOutput_transformedInput_ToDafny(input dynamodb.BatchGetItemInput) ComAmazonawsDynamodbTypes.BatchGetItemInput {
+	return func() ComAmazonawsDynamodbTypes.BatchGetItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_BatchGetItemInput_.Create_BatchGetItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemInput_RequestItems_ToDafny(input.RequestItems), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemOutputTransformInput_sdkOutput_ToDafny(input dynamodb.BatchGetItemOutput) ComAmazonawsDynamodbTypes.BatchGetItemOutput {
+	return func() ComAmazonawsDynamodbTypes.BatchGetItemOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_BatchGetItemOutput_.Create_BatchGetItemOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemOutput_Responses_ToDafny(input.Responses), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemOutput_UnprocessedKeys_ToDafny(input.UnprocessedKeys), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemOutputTransformInput_originalInput_ToDafny(input dynamodb.BatchGetItemInput) ComAmazonawsDynamodbTypes.BatchGetItemInput {
+	return func() ComAmazonawsDynamodbTypes.BatchGetItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_BatchGetItemInput_.Create_BatchGetItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemInput_RequestItems_ToDafny(input.RequestItems), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemOutputTransformOutput_transformedOutput_ToDafny(input dynamodb.BatchGetItemOutput) ComAmazonawsDynamodbTypes.BatchGetItemOutput {
+	return func() ComAmazonawsDynamodbTypes.BatchGetItemOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_BatchGetItemOutput_.Create_BatchGetItemOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemOutput_Responses_ToDafny(input.Responses), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemOutput_UnprocessedKeys_ToDafny(input.UnprocessedKeys), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemInputTransformInput_sdkInput_ToDafny(input dynamodb.BatchWriteItemInput) ComAmazonawsDynamodbTypes.BatchWriteItemInput {
+	return func() ComAmazonawsDynamodbTypes.BatchWriteItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_BatchWriteItemInput_.Create_BatchWriteItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_RequestItems_ToDafny(input.RequestItems), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_ReturnItemCollectionMetrics_ToDafny(input.ReturnItemCollectionMetrics))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemInputTransformOutput_transformedInput_ToDafny(input dynamodb.BatchWriteItemInput) ComAmazonawsDynamodbTypes.BatchWriteItemInput {
+	return func() ComAmazonawsDynamodbTypes.BatchWriteItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_BatchWriteItemInput_.Create_BatchWriteItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_RequestItems_ToDafny(input.RequestItems), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_ReturnItemCollectionMetrics_ToDafny(input.ReturnItemCollectionMetrics))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemOutputTransformInput_sdkOutput_ToDafny(input dynamodb.BatchWriteItemOutput) ComAmazonawsDynamodbTypes.BatchWriteItemOutput {
+	return func() ComAmazonawsDynamodbTypes.BatchWriteItemOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_BatchWriteItemOutput_.Create_BatchWriteItemOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemOutput_UnprocessedItems_ToDafny(input.UnprocessedItems), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemOutput_ItemCollectionMetrics_ToDafny(input.ItemCollectionMetrics), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemOutputTransformInput_originalInput_ToDafny(input dynamodb.BatchWriteItemInput) ComAmazonawsDynamodbTypes.BatchWriteItemInput {
+	return func() ComAmazonawsDynamodbTypes.BatchWriteItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_BatchWriteItemInput_.Create_BatchWriteItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_RequestItems_ToDafny(input.RequestItems), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_ReturnItemCollectionMetrics_ToDafny(input.ReturnItemCollectionMetrics))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemOutputTransformOutput_transformedOutput_ToDafny(input dynamodb.BatchWriteItemOutput) ComAmazonawsDynamodbTypes.BatchWriteItemOutput {
+	return func() ComAmazonawsDynamodbTypes.BatchWriteItemOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_BatchWriteItemOutput_.Create_BatchWriteItemOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemOutput_UnprocessedItems_ToDafny(input.UnprocessedItems), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemOutput_ItemCollectionMetrics_ToDafny(input.ItemCollectionMetrics), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemInputTransformInput_sdkInput_ToDafny(input dynamodb.DeleteItemInput) ComAmazonawsDynamodbTypes.DeleteItemInput {
+	return func() ComAmazonawsDynamodbTypes.DeleteItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_DeleteItemInput_.Create_DeleteItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_Key_ToDafny(input.Key), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_Expected_ToDafny(input.Expected), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ConditionalOperator_ToDafny(input.ConditionalOperator), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnValues_ToDafny(input.ReturnValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnItemCollectionMetrics_ToDafny(input.ReturnItemCollectionMetrics), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ConditionExpression_ToDafny(input.ConditionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ExpressionAttributeValues_ToDafny(input.ExpressionAttributeValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnValuesOnConditionCheckFailure_ToDafny(input.ReturnValuesOnConditionCheckFailure))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemInputTransformOutput_transformedInput_ToDafny(input dynamodb.DeleteItemInput) ComAmazonawsDynamodbTypes.DeleteItemInput {
+	return func() ComAmazonawsDynamodbTypes.DeleteItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_DeleteItemInput_.Create_DeleteItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_Key_ToDafny(input.Key), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_Expected_ToDafny(input.Expected), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ConditionalOperator_ToDafny(input.ConditionalOperator), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnValues_ToDafny(input.ReturnValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnItemCollectionMetrics_ToDafny(input.ReturnItemCollectionMetrics), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ConditionExpression_ToDafny(input.ConditionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ExpressionAttributeValues_ToDafny(input.ExpressionAttributeValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnValuesOnConditionCheckFailure_ToDafny(input.ReturnValuesOnConditionCheckFailure))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemOutputTransformInput_sdkOutput_ToDafny(input dynamodb.DeleteItemOutput) ComAmazonawsDynamodbTypes.DeleteItemOutput {
+	return func() ComAmazonawsDynamodbTypes.DeleteItemOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_DeleteItemOutput_.Create_DeleteItemOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemOutput_Attributes_ToDafny(input.Attributes), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemOutput_ItemCollectionMetrics_ToDafny(input.ItemCollectionMetrics))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemOutputTransformInput_originalInput_ToDafny(input dynamodb.DeleteItemInput) ComAmazonawsDynamodbTypes.DeleteItemInput {
+	return func() ComAmazonawsDynamodbTypes.DeleteItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_DeleteItemInput_.Create_DeleteItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_Key_ToDafny(input.Key), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_Expected_ToDafny(input.Expected), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ConditionalOperator_ToDafny(input.ConditionalOperator), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnValues_ToDafny(input.ReturnValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnItemCollectionMetrics_ToDafny(input.ReturnItemCollectionMetrics), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ConditionExpression_ToDafny(input.ConditionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ExpressionAttributeValues_ToDafny(input.ExpressionAttributeValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnValuesOnConditionCheckFailure_ToDafny(input.ReturnValuesOnConditionCheckFailure))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemOutputTransformOutput_transformedOutput_ToDafny(input dynamodb.DeleteItemOutput) ComAmazonawsDynamodbTypes.DeleteItemOutput {
+	return func() ComAmazonawsDynamodbTypes.DeleteItemOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_DeleteItemOutput_.Create_DeleteItemOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemOutput_Attributes_ToDafny(input.Attributes), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemOutput_ItemCollectionMetrics_ToDafny(input.ItemCollectionMetrics))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementInputTransformInput_sdkInput_ToDafny(input dynamodb.ExecuteStatementInput) ComAmazonawsDynamodbTypes.ExecuteStatementInput {
+	return func() ComAmazonawsDynamodbTypes.ExecuteStatementInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_ExecuteStatementInput_.Create_ExecuteStatementInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Statement_ToDafny(input.Statement), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Parameters_ToDafny(input.Parameters), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ConsistentRead_ToDafny(input.ConsistentRead), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_NextToken_ToDafny(input.NextToken), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Limit_ToDafny(input.Limit), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ReturnValuesOnConditionCheckFailure_ToDafny(input.ReturnValuesOnConditionCheckFailure))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementInputTransformOutput_transformedInput_ToDafny(input dynamodb.ExecuteStatementInput) ComAmazonawsDynamodbTypes.ExecuteStatementInput {
+	return func() ComAmazonawsDynamodbTypes.ExecuteStatementInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_ExecuteStatementInput_.Create_ExecuteStatementInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Statement_ToDafny(input.Statement), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Parameters_ToDafny(input.Parameters), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ConsistentRead_ToDafny(input.ConsistentRead), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_NextToken_ToDafny(input.NextToken), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Limit_ToDafny(input.Limit), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ReturnValuesOnConditionCheckFailure_ToDafny(input.ReturnValuesOnConditionCheckFailure))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementOutputTransformInput_sdkOutput_ToDafny(input dynamodb.ExecuteStatementOutput) ComAmazonawsDynamodbTypes.ExecuteStatementOutput {
+	return func() ComAmazonawsDynamodbTypes.ExecuteStatementOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_ExecuteStatementOutput_.Create_ExecuteStatementOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementOutput_Items_ToDafny(input.Items), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementOutput_NextToken_ToDafny(input.NextToken), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementOutput_LastEvaluatedKey_ToDafny(input.LastEvaluatedKey))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementOutputTransformInput_originalInput_ToDafny(input dynamodb.ExecuteStatementInput) ComAmazonawsDynamodbTypes.ExecuteStatementInput {
+	return func() ComAmazonawsDynamodbTypes.ExecuteStatementInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_ExecuteStatementInput_.Create_ExecuteStatementInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Statement_ToDafny(input.Statement), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Parameters_ToDafny(input.Parameters), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ConsistentRead_ToDafny(input.ConsistentRead), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_NextToken_ToDafny(input.NextToken), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Limit_ToDafny(input.Limit), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ReturnValuesOnConditionCheckFailure_ToDafny(input.ReturnValuesOnConditionCheckFailure))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementOutputTransformOutput_transformedOutput_ToDafny(input dynamodb.ExecuteStatementOutput) ComAmazonawsDynamodbTypes.ExecuteStatementOutput {
+	return func() ComAmazonawsDynamodbTypes.ExecuteStatementOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_ExecuteStatementOutput_.Create_ExecuteStatementOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementOutput_Items_ToDafny(input.Items), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementOutput_NextToken_ToDafny(input.NextToken), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementOutput_LastEvaluatedKey_ToDafny(input.LastEvaluatedKey))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionInputTransformInput_sdkInput_ToDafny(input dynamodb.ExecuteTransactionInput) ComAmazonawsDynamodbTypes.ExecuteTransactionInput {
+	return func() ComAmazonawsDynamodbTypes.ExecuteTransactionInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_ExecuteTransactionInput_.Create_ExecuteTransactionInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_TransactStatements_ToDafny(input.TransactStatements), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_ClientRequestToken_ToDafny(input.ClientRequestToken), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionInputTransformOutput_transformedInput_ToDafny(input dynamodb.ExecuteTransactionInput) ComAmazonawsDynamodbTypes.ExecuteTransactionInput {
+	return func() ComAmazonawsDynamodbTypes.ExecuteTransactionInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_ExecuteTransactionInput_.Create_ExecuteTransactionInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_TransactStatements_ToDafny(input.TransactStatements), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_ClientRequestToken_ToDafny(input.ClientRequestToken), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionOutputTransformInput_sdkOutput_ToDafny(input dynamodb.ExecuteTransactionOutput) ComAmazonawsDynamodbTypes.ExecuteTransactionOutput {
+	return func() ComAmazonawsDynamodbTypes.ExecuteTransactionOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_ExecuteTransactionOutput_.Create_ExecuteTransactionOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionOutput_Responses_ToDafny(input.Responses), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionOutputTransformInput_originalInput_ToDafny(input dynamodb.ExecuteTransactionInput) ComAmazonawsDynamodbTypes.ExecuteTransactionInput {
+	return func() ComAmazonawsDynamodbTypes.ExecuteTransactionInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_ExecuteTransactionInput_.Create_ExecuteTransactionInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_TransactStatements_ToDafny(input.TransactStatements), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_ClientRequestToken_ToDafny(input.ClientRequestToken), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionOutputTransformOutput_transformedOutput_ToDafny(input dynamodb.ExecuteTransactionOutput) ComAmazonawsDynamodbTypes.ExecuteTransactionOutput {
+	return func() ComAmazonawsDynamodbTypes.ExecuteTransactionOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_ExecuteTransactionOutput_.Create_ExecuteTransactionOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionOutput_Responses_ToDafny(input.Responses), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemInputTransformInput_sdkInput_ToDafny(input dynamodb.GetItemInput) ComAmazonawsDynamodbTypes.GetItemInput {
+	return func() ComAmazonawsDynamodbTypes.GetItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_GetItemInput_.Create_GetItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_Key_ToDafny(input.Key), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_AttributesToGet_ToDafny(input.AttributesToGet), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ConsistentRead_ToDafny(input.ConsistentRead), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ProjectionExpression_ToDafny(input.ProjectionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemInputTransformOutput_transformedInput_ToDafny(input dynamodb.GetItemInput) ComAmazonawsDynamodbTypes.GetItemInput {
+	return func() ComAmazonawsDynamodbTypes.GetItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_GetItemInput_.Create_GetItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_Key_ToDafny(input.Key), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_AttributesToGet_ToDafny(input.AttributesToGet), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ConsistentRead_ToDafny(input.ConsistentRead), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ProjectionExpression_ToDafny(input.ProjectionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemOutputTransformInput_sdkOutput_ToDafny(input dynamodb.GetItemOutput) ComAmazonawsDynamodbTypes.GetItemOutput {
+	return func() ComAmazonawsDynamodbTypes.GetItemOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_GetItemOutput_.Create_GetItemOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemOutput_Item_ToDafny(input.Item), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemOutputTransformInput_originalInput_ToDafny(input dynamodb.GetItemInput) ComAmazonawsDynamodbTypes.GetItemInput {
+	return func() ComAmazonawsDynamodbTypes.GetItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_GetItemInput_.Create_GetItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_Key_ToDafny(input.Key), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_AttributesToGet_ToDafny(input.AttributesToGet), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ConsistentRead_ToDafny(input.ConsistentRead), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ProjectionExpression_ToDafny(input.ProjectionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemOutputTransformOutput_transformedOutput_ToDafny(input dynamodb.GetItemOutput) ComAmazonawsDynamodbTypes.GetItemOutput {
+	return func() ComAmazonawsDynamodbTypes.GetItemOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_GetItemOutput_.Create_GetItemOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemOutput_Item_ToDafny(input.Item), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemInputTransformInput_sdkInput_ToDafny(input dynamodb.PutItemInput) ComAmazonawsDynamodbTypes.PutItemInput {
+	return func() ComAmazonawsDynamodbTypes.PutItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_PutItemInput_.Create_PutItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_Item_ToDafny(input.Item), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_Expected_ToDafny(input.Expected), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnValues_ToDafny(input.ReturnValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnItemCollectionMetrics_ToDafny(input.ReturnItemCollectionMetrics), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ConditionalOperator_ToDafny(input.ConditionalOperator), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ConditionExpression_ToDafny(input.ConditionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ExpressionAttributeValues_ToDafny(input.ExpressionAttributeValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnValuesOnConditionCheckFailure_ToDafny(input.ReturnValuesOnConditionCheckFailure))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemInputTransformOutput_transformedInput_ToDafny(input dynamodb.PutItemInput) ComAmazonawsDynamodbTypes.PutItemInput {
+	return func() ComAmazonawsDynamodbTypes.PutItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_PutItemInput_.Create_PutItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_Item_ToDafny(input.Item), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_Expected_ToDafny(input.Expected), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnValues_ToDafny(input.ReturnValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnItemCollectionMetrics_ToDafny(input.ReturnItemCollectionMetrics), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ConditionalOperator_ToDafny(input.ConditionalOperator), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ConditionExpression_ToDafny(input.ConditionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ExpressionAttributeValues_ToDafny(input.ExpressionAttributeValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnValuesOnConditionCheckFailure_ToDafny(input.ReturnValuesOnConditionCheckFailure))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemOutputTransformInput_sdkOutput_ToDafny(input dynamodb.PutItemOutput) ComAmazonawsDynamodbTypes.PutItemOutput {
+	return func() ComAmazonawsDynamodbTypes.PutItemOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_PutItemOutput_.Create_PutItemOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemOutput_Attributes_ToDafny(input.Attributes), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemOutput_ItemCollectionMetrics_ToDafny(input.ItemCollectionMetrics))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemOutputTransformInput_originalInput_ToDafny(input dynamodb.PutItemInput) ComAmazonawsDynamodbTypes.PutItemInput {
+	return func() ComAmazonawsDynamodbTypes.PutItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_PutItemInput_.Create_PutItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_Item_ToDafny(input.Item), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_Expected_ToDafny(input.Expected), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnValues_ToDafny(input.ReturnValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnItemCollectionMetrics_ToDafny(input.ReturnItemCollectionMetrics), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ConditionalOperator_ToDafny(input.ConditionalOperator), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ConditionExpression_ToDafny(input.ConditionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ExpressionAttributeValues_ToDafny(input.ExpressionAttributeValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnValuesOnConditionCheckFailure_ToDafny(input.ReturnValuesOnConditionCheckFailure))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemOutputTransformOutput_transformedOutput_ToDafny(input dynamodb.PutItemOutput) ComAmazonawsDynamodbTypes.PutItemOutput {
+	return func() ComAmazonawsDynamodbTypes.PutItemOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_PutItemOutput_.Create_PutItemOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemOutput_Attributes_ToDafny(input.Attributes), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemOutput_ItemCollectionMetrics_ToDafny(input.ItemCollectionMetrics))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryInputTransformInput_sdkInput_ToDafny(input dynamodb.QueryInput) ComAmazonawsDynamodbTypes.QueryInput {
+	return func() ComAmazonawsDynamodbTypes.QueryInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_QueryInput_.Create_QueryInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_IndexName_ToDafny(input.IndexName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_Select_ToDafny(input.Select), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_AttributesToGet_ToDafny(input.AttributesToGet), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_Limit_ToDafny(input.Limit), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ConsistentRead_ToDafny(input.ConsistentRead), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_KeyConditions_ToDafny(input.KeyConditions), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_QueryFilter_ToDafny(input.QueryFilter), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ConditionalOperator_ToDafny(input.ConditionalOperator), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ScanIndexForward_ToDafny(input.ScanIndexForward), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExclusiveStartKey_ToDafny(input.ExclusiveStartKey), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ProjectionExpression_ToDafny(input.ProjectionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_FilterExpression_ToDafny(input.FilterExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_KeyConditionExpression_ToDafny(input.KeyConditionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExpressionAttributeValues_ToDafny(input.ExpressionAttributeValues))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryInputTransformOutput_transformedInput_ToDafny(input dynamodb.QueryInput) ComAmazonawsDynamodbTypes.QueryInput {
+	return func() ComAmazonawsDynamodbTypes.QueryInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_QueryInput_.Create_QueryInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_IndexName_ToDafny(input.IndexName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_Select_ToDafny(input.Select), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_AttributesToGet_ToDafny(input.AttributesToGet), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_Limit_ToDafny(input.Limit), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ConsistentRead_ToDafny(input.ConsistentRead), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_KeyConditions_ToDafny(input.KeyConditions), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_QueryFilter_ToDafny(input.QueryFilter), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ConditionalOperator_ToDafny(input.ConditionalOperator), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ScanIndexForward_ToDafny(input.ScanIndexForward), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExclusiveStartKey_ToDafny(input.ExclusiveStartKey), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ProjectionExpression_ToDafny(input.ProjectionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_FilterExpression_ToDafny(input.FilterExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_KeyConditionExpression_ToDafny(input.KeyConditionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExpressionAttributeValues_ToDafny(input.ExpressionAttributeValues))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryOutputTransformInput_sdkOutput_ToDafny(input dynamodb.QueryOutput) ComAmazonawsDynamodbTypes.QueryOutput {
+	return func() ComAmazonawsDynamodbTypes.QueryOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_QueryOutput_.Create_QueryOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_Items_ToDafny(input.Items), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_Count_ToDafny(input.Count), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_ScannedCount_ToDafny(input.ScannedCount), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_LastEvaluatedKey_ToDafny(input.LastEvaluatedKey), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryOutputTransformInput_originalInput_ToDafny(input dynamodb.QueryInput) ComAmazonawsDynamodbTypes.QueryInput {
+	return func() ComAmazonawsDynamodbTypes.QueryInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_QueryInput_.Create_QueryInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_IndexName_ToDafny(input.IndexName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_Select_ToDafny(input.Select), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_AttributesToGet_ToDafny(input.AttributesToGet), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_Limit_ToDafny(input.Limit), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ConsistentRead_ToDafny(input.ConsistentRead), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_KeyConditions_ToDafny(input.KeyConditions), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_QueryFilter_ToDafny(input.QueryFilter), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ConditionalOperator_ToDafny(input.ConditionalOperator), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ScanIndexForward_ToDafny(input.ScanIndexForward), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExclusiveStartKey_ToDafny(input.ExclusiveStartKey), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ProjectionExpression_ToDafny(input.ProjectionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_FilterExpression_ToDafny(input.FilterExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_KeyConditionExpression_ToDafny(input.KeyConditionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExpressionAttributeValues_ToDafny(input.ExpressionAttributeValues))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryOutputTransformOutput_transformedOutput_ToDafny(input dynamodb.QueryOutput) ComAmazonawsDynamodbTypes.QueryOutput {
+	return func() ComAmazonawsDynamodbTypes.QueryOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_QueryOutput_.Create_QueryOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_Items_ToDafny(input.Items), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_Count_ToDafny(input.Count), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_ScannedCount_ToDafny(input.ScannedCount), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_LastEvaluatedKey_ToDafny(input.LastEvaluatedKey), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesInput_TableName_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesInput_Item_ToDafny(input map[string]dynamodbtypes.AttributeValue) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_key_ToDafny(key), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesInput_Version_ToDafny(input *int32) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		return Wrappers.Companion_Option_.Create_Some_(*input)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesOutput_VirtualFields_ToDafny(input map[string]string) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_StringMap_key_ToDafny(key), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_StringMap_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_StringMap_key_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_StringMap_value_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesOutput_CompoundBeacons_ToDafny(input map[string]string) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_StringMap_key_ToDafny(key), Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_StringMap_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanInputTransformInput_sdkInput_ToDafny(input dynamodb.ScanInput) ComAmazonawsDynamodbTypes.ScanInput {
+	return func() ComAmazonawsDynamodbTypes.ScanInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_ScanInput_.Create_ScanInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_IndexName_ToDafny(input.IndexName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_AttributesToGet_ToDafny(input.AttributesToGet), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Limit_ToDafny(input.Limit), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Select_ToDafny(input.Select), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ScanFilter_ToDafny(input.ScanFilter), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ConditionalOperator_ToDafny(input.ConditionalOperator), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExclusiveStartKey_ToDafny(input.ExclusiveStartKey), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_TotalSegments_ToDafny(input.TotalSegments), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Segment_ToDafny(input.Segment), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ProjectionExpression_ToDafny(input.ProjectionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_FilterExpression_ToDafny(input.FilterExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExpressionAttributeValues_ToDafny(input.ExpressionAttributeValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ConsistentRead_ToDafny(input.ConsistentRead))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanInputTransformOutput_transformedInput_ToDafny(input dynamodb.ScanInput) ComAmazonawsDynamodbTypes.ScanInput {
+	return func() ComAmazonawsDynamodbTypes.ScanInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_ScanInput_.Create_ScanInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_IndexName_ToDafny(input.IndexName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_AttributesToGet_ToDafny(input.AttributesToGet), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Limit_ToDafny(input.Limit), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Select_ToDafny(input.Select), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ScanFilter_ToDafny(input.ScanFilter), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ConditionalOperator_ToDafny(input.ConditionalOperator), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExclusiveStartKey_ToDafny(input.ExclusiveStartKey), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_TotalSegments_ToDafny(input.TotalSegments), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Segment_ToDafny(input.Segment), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ProjectionExpression_ToDafny(input.ProjectionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_FilterExpression_ToDafny(input.FilterExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExpressionAttributeValues_ToDafny(input.ExpressionAttributeValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ConsistentRead_ToDafny(input.ConsistentRead))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanOutputTransformInput_sdkOutput_ToDafny(input dynamodb.ScanOutput) ComAmazonawsDynamodbTypes.ScanOutput {
+	return func() ComAmazonawsDynamodbTypes.ScanOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_ScanOutput_.Create_ScanOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_Items_ToDafny(input.Items), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_Count_ToDafny(input.Count), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_ScannedCount_ToDafny(input.ScannedCount), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_LastEvaluatedKey_ToDafny(input.LastEvaluatedKey), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanOutputTransformInput_originalInput_ToDafny(input dynamodb.ScanInput) ComAmazonawsDynamodbTypes.ScanInput {
+	return func() ComAmazonawsDynamodbTypes.ScanInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_ScanInput_.Create_ScanInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_IndexName_ToDafny(input.IndexName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_AttributesToGet_ToDafny(input.AttributesToGet), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Limit_ToDafny(input.Limit), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Select_ToDafny(input.Select), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ScanFilter_ToDafny(input.ScanFilter), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ConditionalOperator_ToDafny(input.ConditionalOperator), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExclusiveStartKey_ToDafny(input.ExclusiveStartKey), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_TotalSegments_ToDafny(input.TotalSegments), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Segment_ToDafny(input.Segment), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ProjectionExpression_ToDafny(input.ProjectionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_FilterExpression_ToDafny(input.FilterExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExpressionAttributeValues_ToDafny(input.ExpressionAttributeValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ConsistentRead_ToDafny(input.ConsistentRead))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanOutputTransformOutput_transformedOutput_ToDafny(input dynamodb.ScanOutput) ComAmazonawsDynamodbTypes.ScanOutput {
+	return func() ComAmazonawsDynamodbTypes.ScanOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_ScanOutput_.Create_ScanOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_Items_ToDafny(input.Items), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_Count_ToDafny(input.Count), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_ScannedCount_ToDafny(input.ScannedCount), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_LastEvaluatedKey_ToDafny(input.LastEvaluatedKey), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsInputTransformInput_sdkInput_ToDafny(input dynamodb.TransactGetItemsInput) ComAmazonawsDynamodbTypes.TransactGetItemsInput {
+	return func() ComAmazonawsDynamodbTypes.TransactGetItemsInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_TransactGetItemsInput_.Create_TransactGetItemsInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsInput_TransactItems_ToDafny(input.TransactItems), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsInputTransformOutput_transformedInput_ToDafny(input dynamodb.TransactGetItemsInput) ComAmazonawsDynamodbTypes.TransactGetItemsInput {
+	return func() ComAmazonawsDynamodbTypes.TransactGetItemsInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_TransactGetItemsInput_.Create_TransactGetItemsInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsInput_TransactItems_ToDafny(input.TransactItems), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsOutputTransformInput_sdkOutput_ToDafny(input dynamodb.TransactGetItemsOutput) ComAmazonawsDynamodbTypes.TransactGetItemsOutput {
+	return func() ComAmazonawsDynamodbTypes.TransactGetItemsOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_TransactGetItemsOutput_.Create_TransactGetItemsOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsOutput_Responses_ToDafny(input.Responses))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsOutputTransformInput_originalInput_ToDafny(input dynamodb.TransactGetItemsInput) ComAmazonawsDynamodbTypes.TransactGetItemsInput {
+	return func() ComAmazonawsDynamodbTypes.TransactGetItemsInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_TransactGetItemsInput_.Create_TransactGetItemsInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsInput_TransactItems_ToDafny(input.TransactItems), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsOutputTransformOutput_transformedOutput_ToDafny(input dynamodb.TransactGetItemsOutput) ComAmazonawsDynamodbTypes.TransactGetItemsOutput {
+	return func() ComAmazonawsDynamodbTypes.TransactGetItemsOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_TransactGetItemsOutput_.Create_TransactGetItemsOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsOutput_Responses_ToDafny(input.Responses))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsInputTransformInput_sdkInput_ToDafny(input dynamodb.TransactWriteItemsInput) ComAmazonawsDynamodbTypes.TransactWriteItemsInput {
+	return func() ComAmazonawsDynamodbTypes.TransactWriteItemsInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_TransactWriteItemsInput_.Create_TransactWriteItemsInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_TransactItems_ToDafny(input.TransactItems), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ReturnItemCollectionMetrics_ToDafny(input.ReturnItemCollectionMetrics), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ClientRequestToken_ToDafny(input.ClientRequestToken))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsInputTransformOutput_transformedInput_ToDafny(input dynamodb.TransactWriteItemsInput) ComAmazonawsDynamodbTypes.TransactWriteItemsInput {
+	return func() ComAmazonawsDynamodbTypes.TransactWriteItemsInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_TransactWriteItemsInput_.Create_TransactWriteItemsInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_TransactItems_ToDafny(input.TransactItems), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ReturnItemCollectionMetrics_ToDafny(input.ReturnItemCollectionMetrics), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ClientRequestToken_ToDafny(input.ClientRequestToken))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsOutputTransformInput_sdkOutput_ToDafny(input dynamodb.TransactWriteItemsOutput) ComAmazonawsDynamodbTypes.TransactWriteItemsOutput {
+	return func() ComAmazonawsDynamodbTypes.TransactWriteItemsOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_TransactWriteItemsOutput_.Create_TransactWriteItemsOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsOutput_ItemCollectionMetrics_ToDafny(input.ItemCollectionMetrics))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsOutputTransformInput_originalInput_ToDafny(input dynamodb.TransactWriteItemsInput) ComAmazonawsDynamodbTypes.TransactWriteItemsInput {
+	return func() ComAmazonawsDynamodbTypes.TransactWriteItemsInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_TransactWriteItemsInput_.Create_TransactWriteItemsInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_TransactItems_ToDafny(input.TransactItems), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ReturnItemCollectionMetrics_ToDafny(input.ReturnItemCollectionMetrics), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ClientRequestToken_ToDafny(input.ClientRequestToken))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsOutputTransformOutput_transformedOutput_ToDafny(input dynamodb.TransactWriteItemsOutput) ComAmazonawsDynamodbTypes.TransactWriteItemsOutput {
+	return func() ComAmazonawsDynamodbTypes.TransactWriteItemsOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_TransactWriteItemsOutput_.Create_TransactWriteItemsOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsOutput_ItemCollectionMetrics_ToDafny(input.ItemCollectionMetrics))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemInputTransformInput_sdkInput_ToDafny(input dynamodb.UpdateItemInput) ComAmazonawsDynamodbTypes.UpdateItemInput {
+	return func() ComAmazonawsDynamodbTypes.UpdateItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_UpdateItemInput_.Create_UpdateItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_Key_ToDafny(input.Key), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_AttributeUpdates_ToDafny(input.AttributeUpdates), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_Expected_ToDafny(input.Expected), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ConditionalOperator_ToDafny(input.ConditionalOperator), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnValues_ToDafny(input.ReturnValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnItemCollectionMetrics_ToDafny(input.ReturnItemCollectionMetrics), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_UpdateExpression_ToDafny(input.UpdateExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ConditionExpression_ToDafny(input.ConditionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ExpressionAttributeValues_ToDafny(input.ExpressionAttributeValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnValuesOnConditionCheckFailure_ToDafny(input.ReturnValuesOnConditionCheckFailure))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemInputTransformOutput_transformedInput_ToDafny(input dynamodb.UpdateItemInput) ComAmazonawsDynamodbTypes.UpdateItemInput {
+	return func() ComAmazonawsDynamodbTypes.UpdateItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_UpdateItemInput_.Create_UpdateItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_Key_ToDafny(input.Key), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_AttributeUpdates_ToDafny(input.AttributeUpdates), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_Expected_ToDafny(input.Expected), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ConditionalOperator_ToDafny(input.ConditionalOperator), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnValues_ToDafny(input.ReturnValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnItemCollectionMetrics_ToDafny(input.ReturnItemCollectionMetrics), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_UpdateExpression_ToDafny(input.UpdateExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ConditionExpression_ToDafny(input.ConditionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ExpressionAttributeValues_ToDafny(input.ExpressionAttributeValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnValuesOnConditionCheckFailure_ToDafny(input.ReturnValuesOnConditionCheckFailure))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemOutputTransformInput_sdkOutput_ToDafny(input dynamodb.UpdateItemOutput) ComAmazonawsDynamodbTypes.UpdateItemOutput {
+	return func() ComAmazonawsDynamodbTypes.UpdateItemOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_UpdateItemOutput_.Create_UpdateItemOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemOutput_Attributes_ToDafny(input.Attributes), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemOutput_ItemCollectionMetrics_ToDafny(input.ItemCollectionMetrics))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemOutputTransformInput_originalInput_ToDafny(input dynamodb.UpdateItemInput) ComAmazonawsDynamodbTypes.UpdateItemInput {
+	return func() ComAmazonawsDynamodbTypes.UpdateItemInput {
+
+		return ComAmazonawsDynamodbTypes.Companion_UpdateItemInput_.Create_UpdateItemInput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_TableName_ToDafny(input.TableName), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_Key_ToDafny(input.Key), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_AttributeUpdates_ToDafny(input.AttributeUpdates), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_Expected_ToDafny(input.Expected), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ConditionalOperator_ToDafny(input.ConditionalOperator), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnValues_ToDafny(input.ReturnValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnConsumedCapacity_ToDafny(input.ReturnConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnItemCollectionMetrics_ToDafny(input.ReturnItemCollectionMetrics), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_UpdateExpression_ToDafny(input.UpdateExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ConditionExpression_ToDafny(input.ConditionExpression), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ExpressionAttributeNames_ToDafny(input.ExpressionAttributeNames), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ExpressionAttributeValues_ToDafny(input.ExpressionAttributeValues), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnValuesOnConditionCheckFailure_ToDafny(input.ReturnValuesOnConditionCheckFailure))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemOutputTransformOutput_transformedOutput_ToDafny(input dynamodb.UpdateItemOutput) ComAmazonawsDynamodbTypes.UpdateItemOutput {
+	return func() ComAmazonawsDynamodbTypes.UpdateItemOutput {
+
+		return ComAmazonawsDynamodbTypes.Companion_UpdateItemOutput_.Create_UpdateItemOutput_(comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemOutput_Attributes_ToDafny(input.Attributes), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemOutput_ConsumedCapacity_ToDafny(input.ConsumedCapacity), comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemOutput_ItemCollectionMetrics_ToDafny(input.ItemCollectionMetrics))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DynamoDbEncryptionTransformsException_message_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygenerated/to_native.go b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygenerated/to_native.go
new file mode 100644
index 000000000..851f227fb
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygenerated/to_native.go
@@ -0,0 +1,1098 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbtransformssmithygenerated
+
+import (
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/comamazonawsdynamodbsmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbsmithygenerated"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated"
+	"github.com/aws/aws-sdk-go-v2/service/dynamodb"
+	dynamodbtypes "github.com/aws/aws-sdk-go-v2/service/dynamodb/types"
+	"github.com/dafny-lang/DafnyRuntimeGo/v4/dafny"
+)
+
+func BatchExecuteStatementInputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementInputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementInputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementInputTransformInput{SdkInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementInputTransformInput_sdkInput_FromDafny(dafnyInput.Dtor_sdkInput())}
+
+}
+
+func BatchExecuteStatementInputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementInputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementInputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementInputTransformOutput{TransformedInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementInputTransformOutput_transformedInput_FromDafny(dafnyOutput.Dtor_transformedInput())}
+
+}
+
+func BatchExecuteStatementOutputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementOutputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementOutputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementOutputTransformInput{SdkOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementOutputTransformInput_sdkOutput_FromDafny(dafnyInput.Dtor_sdkOutput()),
+		OriginalInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementOutputTransformInput_originalInput_FromDafny(dafnyInput.Dtor_originalInput()),
+	}
+
+}
+
+func BatchExecuteStatementOutputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchExecuteStatementOutputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementOutputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementOutputTransformOutput{TransformedOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementOutputTransformOutput_transformedOutput_FromDafny(dafnyOutput.Dtor_transformedOutput())}
+
+}
+
+func BatchGetItemInputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemInputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemInputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemInputTransformInput{SdkInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemInputTransformInput_sdkInput_FromDafny(dafnyInput.Dtor_sdkInput())}
+
+}
+
+func BatchGetItemInputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemInputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemInputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemInputTransformOutput{TransformedInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemInputTransformOutput_transformedInput_FromDafny(dafnyOutput.Dtor_transformedInput())}
+
+}
+
+func BatchGetItemOutputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemOutputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemOutputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemOutputTransformInput{SdkOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemOutputTransformInput_sdkOutput_FromDafny(dafnyInput.Dtor_sdkOutput()),
+		OriginalInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemOutputTransformInput_originalInput_FromDafny(dafnyInput.Dtor_originalInput()),
+	}
+
+}
+
+func BatchGetItemOutputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchGetItemOutputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemOutputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemOutputTransformOutput{TransformedOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemOutputTransformOutput_transformedOutput_FromDafny(dafnyOutput.Dtor_transformedOutput())}
+
+}
+
+func BatchWriteItemInputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemInputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemInputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemInputTransformInput{SdkInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemInputTransformInput_sdkInput_FromDafny(dafnyInput.Dtor_sdkInput())}
+
+}
+
+func BatchWriteItemInputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemInputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemInputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemInputTransformOutput{TransformedInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemInputTransformOutput_transformedInput_FromDafny(dafnyOutput.Dtor_transformedInput())}
+
+}
+
+func BatchWriteItemOutputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemOutputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemOutputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemOutputTransformInput{SdkOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemOutputTransformInput_sdkOutput_FromDafny(dafnyInput.Dtor_sdkOutput()),
+		OriginalInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemOutputTransformInput_originalInput_FromDafny(dafnyInput.Dtor_originalInput()),
+	}
+
+}
+
+func BatchWriteItemOutputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.BatchWriteItemOutputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemOutputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemOutputTransformOutput{TransformedOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemOutputTransformOutput_transformedOutput_FromDafny(dafnyOutput.Dtor_transformedOutput())}
+
+}
+
+func DeleteItemInputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemInputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemInputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemInputTransformInput{SdkInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemInputTransformInput_sdkInput_FromDafny(dafnyInput.Dtor_sdkInput())}
+
+}
+
+func DeleteItemInputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemInputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemInputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemInputTransformOutput{TransformedInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemInputTransformOutput_transformedInput_FromDafny(dafnyOutput.Dtor_transformedInput())}
+
+}
+
+func DeleteItemOutputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemOutputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemOutputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemOutputTransformInput{SdkOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemOutputTransformInput_sdkOutput_FromDafny(dafnyInput.Dtor_sdkOutput()),
+		OriginalInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemOutputTransformInput_originalInput_FromDafny(dafnyInput.Dtor_originalInput()),
+	}
+
+}
+
+func DeleteItemOutputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.DeleteItemOutputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemOutputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemOutputTransformOutput{TransformedOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemOutputTransformOutput_transformedOutput_FromDafny(dafnyOutput.Dtor_transformedOutput())}
+
+}
+
+func ExecuteStatementInputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementInputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementInputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementInputTransformInput{SdkInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementInputTransformInput_sdkInput_FromDafny(dafnyInput.Dtor_sdkInput())}
+
+}
+
+func ExecuteStatementInputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementInputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementInputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementInputTransformOutput{TransformedInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementInputTransformOutput_transformedInput_FromDafny(dafnyOutput.Dtor_transformedInput())}
+
+}
+
+func ExecuteStatementOutputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementOutputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementOutputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementOutputTransformInput{SdkOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementOutputTransformInput_sdkOutput_FromDafny(dafnyInput.Dtor_sdkOutput()),
+		OriginalInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementOutputTransformInput_originalInput_FromDafny(dafnyInput.Dtor_originalInput()),
+	}
+
+}
+
+func ExecuteStatementOutputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteStatementOutputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementOutputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementOutputTransformOutput{TransformedOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementOutputTransformOutput_transformedOutput_FromDafny(dafnyOutput.Dtor_transformedOutput())}
+
+}
+
+func ExecuteTransactionInputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionInputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionInputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionInputTransformInput{SdkInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionInputTransformInput_sdkInput_FromDafny(dafnyInput.Dtor_sdkInput())}
+
+}
+
+func ExecuteTransactionInputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionInputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionInputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionInputTransformOutput{TransformedInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionInputTransformOutput_transformedInput_FromDafny(dafnyOutput.Dtor_transformedInput())}
+
+}
+
+func ExecuteTransactionOutputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionOutputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionOutputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionOutputTransformInput{SdkOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionOutputTransformInput_sdkOutput_FromDafny(dafnyInput.Dtor_sdkOutput()),
+		OriginalInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionOutputTransformInput_originalInput_FromDafny(dafnyInput.Dtor_originalInput()),
+	}
+
+}
+
+func ExecuteTransactionOutputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ExecuteTransactionOutputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionOutputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionOutputTransformOutput{TransformedOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionOutputTransformOutput_transformedOutput_FromDafny(dafnyOutput.Dtor_transformedOutput())}
+
+}
+
+func GetItemInputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemInputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemInputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemInputTransformInput{SdkInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemInputTransformInput_sdkInput_FromDafny(dafnyInput.Dtor_sdkInput())}
+
+}
+
+func GetItemInputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemInputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemInputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemInputTransformOutput{TransformedInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemInputTransformOutput_transformedInput_FromDafny(dafnyOutput.Dtor_transformedInput())}
+
+}
+
+func GetItemOutputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemOutputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemOutputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemOutputTransformInput{SdkOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemOutputTransformInput_sdkOutput_FromDafny(dafnyInput.Dtor_sdkOutput()),
+		OriginalInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemOutputTransformInput_originalInput_FromDafny(dafnyInput.Dtor_originalInput()),
+	}
+
+}
+
+func GetItemOutputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.GetItemOutputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemOutputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemOutputTransformOutput{TransformedOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemOutputTransformOutput_transformedOutput_FromDafny(dafnyOutput.Dtor_transformedOutput())}
+
+}
+
+func PutItemInputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemInputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemInputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemInputTransformInput{SdkInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemInputTransformInput_sdkInput_FromDafny(dafnyInput.Dtor_sdkInput())}
+
+}
+
+func PutItemInputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemInputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemInputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemInputTransformOutput{TransformedInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemInputTransformOutput_transformedInput_FromDafny(dafnyOutput.Dtor_transformedInput())}
+
+}
+
+func PutItemOutputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemOutputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemOutputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemOutputTransformInput{SdkOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemOutputTransformInput_sdkOutput_FromDafny(dafnyInput.Dtor_sdkOutput()),
+		OriginalInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemOutputTransformInput_originalInput_FromDafny(dafnyInput.Dtor_originalInput()),
+	}
+
+}
+
+func PutItemOutputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.PutItemOutputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemOutputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemOutputTransformOutput{TransformedOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemOutputTransformOutput_transformedOutput_FromDafny(dafnyOutput.Dtor_transformedOutput())}
+
+}
+
+func QueryInputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryInputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryInputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryInputTransformInput{SdkInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryInputTransformInput_sdkInput_FromDafny(dafnyInput.Dtor_sdkInput())}
+
+}
+
+func QueryInputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryInputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryInputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryInputTransformOutput{TransformedInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryInputTransformOutput_transformedInput_FromDafny(dafnyOutput.Dtor_transformedInput())}
+
+}
+
+func QueryOutputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryOutputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryOutputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryOutputTransformInput{SdkOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryOutputTransformInput_sdkOutput_FromDafny(dafnyInput.Dtor_sdkOutput()),
+		OriginalInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryOutputTransformInput_originalInput_FromDafny(dafnyInput.Dtor_originalInput()),
+	}
+
+}
+
+func QueryOutputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.QueryOutputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryOutputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryOutputTransformOutput{TransformedOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryOutputTransformOutput_transformedOutput_FromDafny(dafnyOutput.Dtor_transformedOutput())}
+
+}
+
+func ResolveAttributesInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ResolveAttributesInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ResolveAttributesInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ResolveAttributesInput{TableName: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesInput_TableName_FromDafny(dafnyInput.Dtor_TableName()),
+		Item:    Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesInput_Item_FromDafny(dafnyInput.Dtor_Item()),
+		Version: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesInput_Version_FromDafny(dafnyInput.Dtor_Version().UnwrapOr(nil)),
+	}
+
+}
+
+func ResolveAttributesOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ResolveAttributesOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ResolveAttributesOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ResolveAttributesOutput{VirtualFields: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesOutput_VirtualFields_FromDafny(dafnyOutput.Dtor_VirtualFields()),
+		CompoundBeacons: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesOutput_CompoundBeacons_FromDafny(dafnyOutput.Dtor_CompoundBeacons()),
+	}
+
+}
+
+func ScanInputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanInputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanInputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanInputTransformInput{SdkInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanInputTransformInput_sdkInput_FromDafny(dafnyInput.Dtor_sdkInput())}
+
+}
+
+func ScanInputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanInputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanInputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanInputTransformOutput{TransformedInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanInputTransformOutput_transformedInput_FromDafny(dafnyOutput.Dtor_transformedInput())}
+
+}
+
+func ScanOutputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanOutputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanOutputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanOutputTransformInput{SdkOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanOutputTransformInput_sdkOutput_FromDafny(dafnyInput.Dtor_sdkOutput()),
+		OriginalInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanOutputTransformInput_originalInput_FromDafny(dafnyInput.Dtor_originalInput()),
+	}
+
+}
+
+func ScanOutputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.ScanOutputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanOutputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanOutputTransformOutput{TransformedOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanOutputTransformOutput_transformedOutput_FromDafny(dafnyOutput.Dtor_transformedOutput())}
+
+}
+
+func TransactGetItemsInputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsInputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsInputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsInputTransformInput{SdkInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsInputTransformInput_sdkInput_FromDafny(dafnyInput.Dtor_sdkInput())}
+
+}
+
+func TransactGetItemsInputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsInputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsInputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsInputTransformOutput{TransformedInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsInputTransformOutput_transformedInput_FromDafny(dafnyOutput.Dtor_transformedInput())}
+
+}
+
+func TransactGetItemsOutputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsOutputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsOutputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsOutputTransformInput{SdkOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsOutputTransformInput_sdkOutput_FromDafny(dafnyInput.Dtor_sdkOutput()),
+		OriginalInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsOutputTransformInput_originalInput_FromDafny(dafnyInput.Dtor_originalInput()),
+	}
+
+}
+
+func TransactGetItemsOutputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactGetItemsOutputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsOutputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsOutputTransformOutput{TransformedOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsOutputTransformOutput_transformedOutput_FromDafny(dafnyOutput.Dtor_transformedOutput())}
+
+}
+
+func TransactWriteItemsInputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsInputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsInputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsInputTransformInput{SdkInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsInputTransformInput_sdkInput_FromDafny(dafnyInput.Dtor_sdkInput())}
+
+}
+
+func TransactWriteItemsInputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsInputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsInputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsInputTransformOutput{TransformedInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsInputTransformOutput_transformedInput_FromDafny(dafnyOutput.Dtor_transformedInput())}
+
+}
+
+func TransactWriteItemsOutputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsOutputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsOutputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsOutputTransformInput{SdkOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsOutputTransformInput_sdkOutput_FromDafny(dafnyInput.Dtor_sdkOutput()),
+		OriginalInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsOutputTransformInput_originalInput_FromDafny(dafnyInput.Dtor_originalInput()),
+	}
+
+}
+
+func TransactWriteItemsOutputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.TransactWriteItemsOutputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsOutputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsOutputTransformOutput{TransformedOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsOutputTransformOutput_transformedOutput_FromDafny(dafnyOutput.Dtor_transformedOutput())}
+
+}
+
+func UpdateItemInputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemInputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemInputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemInputTransformInput{SdkInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemInputTransformInput_sdkInput_FromDafny(dafnyInput.Dtor_sdkInput())}
+
+}
+
+func UpdateItemInputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemInputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemInputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemInputTransformOutput{TransformedInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemInputTransformOutput_transformedInput_FromDafny(dafnyOutput.Dtor_transformedInput())}
+
+}
+
+func UpdateItemOutputTransformInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemOutputTransformInput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemOutputTransformInput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemOutputTransformInput{SdkOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemOutputTransformInput_sdkOutput_FromDafny(dafnyInput.Dtor_sdkOutput()),
+		OriginalInput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemOutputTransformInput_originalInput_FromDafny(dafnyInput.Dtor_originalInput()),
+	}
+
+}
+
+func UpdateItemOutputTransformOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.UpdateItemOutputTransformOutput) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemOutputTransformOutput {
+
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemOutputTransformOutput{TransformedOutput: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemOutputTransformOutput_transformedOutput_FromDafny(dafnyOutput.Dtor_transformedOutput())}
+
+}
+
+func DynamoDbEncryptionTransformsException_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DynamoDbEncryptionTransformsException {
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DynamoDbEncryptionTransformsException{Message: Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DynamoDbEncryptionTransformsException_message_FromDafny(dafnyOutput.Dtor_message())}
+
+}
+
+func CollectionOfErrors_Output_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.CollectionOfErrors {
+	listOfErrors := dafnyOutput.Dtor_list()
+	message := dafnyOutput.Dtor_message()
+	t := awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.CollectionOfErrors{}
+	for i := dafny.Iterate(listOfErrors); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		err := val.(AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error)
+		t.ListOfErrors = append(t.ListOfErrors, Error_FromDafny(err))
+
+	}
+	t.Message = func() string {
+		a := UTF8.Encode(message.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+		return s
+	}()
+	return t
+}
+func OpaqueError_Output_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error) awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError {
+	return awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.OpaqueError{
+		ErrObject: dafnyOutput.Dtor_obj(),
+	}
+}
+
+func Error_FromDafny(err AwsCryptographyDbEncryptionSdkDynamoDbTransformsTypes.Error) error {
+	// Service Errors
+	if err.Is_DynamoDbEncryptionTransformsException() {
+		return DynamoDbEncryptionTransformsException_FromDafny(err)
+	}
+
+	//DependentErrors
+	if err.Is_ComAmazonawsDynamodb() {
+		return comamazonawsdynamodbsmithygenerated.Error_FromDafny(err.Dtor_ComAmazonawsDynamodb())
+	}
+
+	if err.Is_AwsCryptographyDbEncryptionSdkDynamoDb() {
+		return awscryptographydbencryptionsdkdynamodbsmithygenerated.Error_FromDafny(err.Dtor_AwsCryptographyDbEncryptionSdkDynamoDb())
+	}
+
+	if err.Is_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptor() {
+		return awscryptographydbencryptionsdkdynamodbitemencryptorsmithygenerated.Error_FromDafny(err.Dtor_AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptor())
+	}
+
+	if err.Is_AwsCryptographyDbEncryptionSdkStructuredEncryption() {
+		return awscryptographydbencryptionsdkstructuredencryptionsmithygenerated.Error_FromDafny(err.Dtor_AwsCryptographyDbEncryptionSdkStructuredEncryption())
+	}
+
+	if err.Is_AwsCryptographyMaterialProviders() {
+		return awscryptographymaterialproviderssmithygenerated.Error_FromDafny(err.Dtor_AwsCryptographyMaterialProviders())
+	}
+
+	//Unmodelled Errors
+	if err.Is_CollectionOfErrors() {
+		return CollectionOfErrors_Output_FromDafny(err)
+	}
+
+	return OpaqueError_Output_FromDafny(err)
+}
+
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementInputTransformInput_sdkInput_FromDafny(input interface{}) dynamodb.BatchExecuteStatementInput {
+	return dynamodb.BatchExecuteStatementInput{Statements: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementInput_Statements_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchExecuteStatementInput).Dtor_Statements()),
+		ReturnConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchExecuteStatementInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementInputTransformOutput_transformedInput_FromDafny(input interface{}) dynamodb.BatchExecuteStatementInput {
+	return dynamodb.BatchExecuteStatementInput{Statements: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementInput_Statements_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchExecuteStatementInput).Dtor_Statements()),
+		ReturnConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchExecuteStatementInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementOutputTransformInput_sdkOutput_FromDafny(input interface{}) dynamodb.BatchExecuteStatementOutput {
+	return dynamodb.BatchExecuteStatementOutput{Responses: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementOutput_Responses_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchExecuteStatementOutput).Dtor_Responses().UnwrapOr(nil)),
+		ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchExecuteStatementOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementOutputTransformInput_originalInput_FromDafny(input interface{}) dynamodb.BatchExecuteStatementInput {
+	return dynamodb.BatchExecuteStatementInput{Statements: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementInput_Statements_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchExecuteStatementInput).Dtor_Statements()),
+		ReturnConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchExecuteStatementInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchExecuteStatementOutputTransformOutput_transformedOutput_FromDafny(input interface{}) dynamodb.BatchExecuteStatementOutput {
+	return dynamodb.BatchExecuteStatementOutput{Responses: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementOutput_Responses_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchExecuteStatementOutput).Dtor_Responses().UnwrapOr(nil)),
+		ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchExecuteStatementOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchExecuteStatementOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemInputTransformInput_sdkInput_FromDafny(input interface{}) dynamodb.BatchGetItemInput {
+	return dynamodb.BatchGetItemInput{RequestItems: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemInput_RequestItems_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchGetItemInput).Dtor_RequestItems()),
+		ReturnConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchGetItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemInputTransformOutput_transformedInput_FromDafny(input interface{}) dynamodb.BatchGetItemInput {
+	return dynamodb.BatchGetItemInput{RequestItems: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemInput_RequestItems_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchGetItemInput).Dtor_RequestItems()),
+		ReturnConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchGetItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemOutputTransformInput_sdkOutput_FromDafny(input interface{}) dynamodb.BatchGetItemOutput {
+	return dynamodb.BatchGetItemOutput{Responses: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemOutput_Responses_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchGetItemOutput).Dtor_Responses().UnwrapOr(nil)),
+		UnprocessedKeys:  comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemOutput_UnprocessedKeys_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchGetItemOutput).Dtor_UnprocessedKeys().UnwrapOr(nil)),
+		ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchGetItemOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemOutputTransformInput_originalInput_FromDafny(input interface{}) dynamodb.BatchGetItemInput {
+	return dynamodb.BatchGetItemInput{RequestItems: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemInput_RequestItems_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchGetItemInput).Dtor_RequestItems()),
+		ReturnConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchGetItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchGetItemOutputTransformOutput_transformedOutput_FromDafny(input interface{}) dynamodb.BatchGetItemOutput {
+	return dynamodb.BatchGetItemOutput{Responses: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemOutput_Responses_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchGetItemOutput).Dtor_Responses().UnwrapOr(nil)),
+		UnprocessedKeys:  comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemOutput_UnprocessedKeys_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchGetItemOutput).Dtor_UnprocessedKeys().UnwrapOr(nil)),
+		ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchGetItemOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchGetItemOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemInputTransformInput_sdkInput_FromDafny(input interface{}) dynamodb.BatchWriteItemInput {
+	return dynamodb.BatchWriteItemInput{RequestItems: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_RequestItems_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchWriteItemInput).Dtor_RequestItems()),
+		ReturnConsumedCapacity:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchWriteItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ReturnItemCollectionMetrics: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_ReturnItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchWriteItemInput).Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemInputTransformOutput_transformedInput_FromDafny(input interface{}) dynamodb.BatchWriteItemInput {
+	return dynamodb.BatchWriteItemInput{RequestItems: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_RequestItems_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchWriteItemInput).Dtor_RequestItems()),
+		ReturnConsumedCapacity:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchWriteItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ReturnItemCollectionMetrics: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_ReturnItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchWriteItemInput).Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemOutputTransformInput_sdkOutput_FromDafny(input interface{}) dynamodb.BatchWriteItemOutput {
+	return dynamodb.BatchWriteItemOutput{UnprocessedItems: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemOutput_UnprocessedItems_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchWriteItemOutput).Dtor_UnprocessedItems().UnwrapOr(nil)),
+		ItemCollectionMetrics: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemOutput_ItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchWriteItemOutput).Dtor_ItemCollectionMetrics().UnwrapOr(nil)),
+		ConsumedCapacity:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchWriteItemOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemOutputTransformInput_originalInput_FromDafny(input interface{}) dynamodb.BatchWriteItemInput {
+	return dynamodb.BatchWriteItemInput{RequestItems: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_RequestItems_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchWriteItemInput).Dtor_RequestItems()),
+		ReturnConsumedCapacity:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchWriteItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ReturnItemCollectionMetrics: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemInput_ReturnItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchWriteItemInput).Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_BatchWriteItemOutputTransformOutput_transformedOutput_FromDafny(input interface{}) dynamodb.BatchWriteItemOutput {
+	return dynamodb.BatchWriteItemOutput{UnprocessedItems: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemOutput_UnprocessedItems_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchWriteItemOutput).Dtor_UnprocessedItems().UnwrapOr(nil)),
+		ItemCollectionMetrics: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemOutput_ItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchWriteItemOutput).Dtor_ItemCollectionMetrics().UnwrapOr(nil)),
+		ConsumedCapacity:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_BatchWriteItemOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.BatchWriteItemOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemInputTransformInput_sdkInput_FromDafny(input interface{}) dynamodb.DeleteItemInput {
+	return dynamodb.DeleteItemInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_TableName()),
+		Key:                                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_Key_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_Key()),
+		Expected:                            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_Expected_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_Expected().UnwrapOr(nil)),
+		ConditionalOperator:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ConditionalOperator_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ConditionalOperator().UnwrapOr(nil)),
+		ReturnValues:                        comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnValues_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ReturnValues().UnwrapOr(nil)),
+		ReturnConsumedCapacity:              comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ReturnItemCollectionMetrics:         comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)),
+		ConditionExpression:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ConditionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ConditionExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+		ExpressionAttributeValues:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ExpressionAttributeValues_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ExpressionAttributeValues().UnwrapOr(nil)),
+		ReturnValuesOnConditionCheckFailure: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnValuesOnConditionCheckFailure_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ReturnValuesOnConditionCheckFailure().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemInputTransformOutput_transformedInput_FromDafny(input interface{}) dynamodb.DeleteItemInput {
+	return dynamodb.DeleteItemInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_TableName()),
+		Key:                                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_Key_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_Key()),
+		Expected:                            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_Expected_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_Expected().UnwrapOr(nil)),
+		ConditionalOperator:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ConditionalOperator_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ConditionalOperator().UnwrapOr(nil)),
+		ReturnValues:                        comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnValues_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ReturnValues().UnwrapOr(nil)),
+		ReturnConsumedCapacity:              comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ReturnItemCollectionMetrics:         comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)),
+		ConditionExpression:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ConditionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ConditionExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+		ExpressionAttributeValues:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ExpressionAttributeValues_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ExpressionAttributeValues().UnwrapOr(nil)),
+		ReturnValuesOnConditionCheckFailure: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnValuesOnConditionCheckFailure_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ReturnValuesOnConditionCheckFailure().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemOutputTransformInput_sdkOutput_FromDafny(input interface{}) dynamodb.DeleteItemOutput {
+	return dynamodb.DeleteItemOutput{Attributes: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemOutput_Attributes_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemOutput).Dtor_Attributes().UnwrapOr(nil)),
+		ConsumedCapacity:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+		ItemCollectionMetrics: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemOutput_ItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemOutput).Dtor_ItemCollectionMetrics().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemOutputTransformInput_originalInput_FromDafny(input interface{}) dynamodb.DeleteItemInput {
+	return dynamodb.DeleteItemInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_TableName()),
+		Key:                                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_Key_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_Key()),
+		Expected:                            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_Expected_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_Expected().UnwrapOr(nil)),
+		ConditionalOperator:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ConditionalOperator_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ConditionalOperator().UnwrapOr(nil)),
+		ReturnValues:                        comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnValues_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ReturnValues().UnwrapOr(nil)),
+		ReturnConsumedCapacity:              comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ReturnItemCollectionMetrics:         comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)),
+		ConditionExpression:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ConditionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ConditionExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+		ExpressionAttributeValues:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ExpressionAttributeValues_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ExpressionAttributeValues().UnwrapOr(nil)),
+		ReturnValuesOnConditionCheckFailure: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemInput_ReturnValuesOnConditionCheckFailure_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemInput).Dtor_ReturnValuesOnConditionCheckFailure().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DeleteItemOutputTransformOutput_transformedOutput_FromDafny(input interface{}) dynamodb.DeleteItemOutput {
+	return dynamodb.DeleteItemOutput{Attributes: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemOutput_Attributes_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemOutput).Dtor_Attributes().UnwrapOr(nil)),
+		ConsumedCapacity:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+		ItemCollectionMetrics: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_DeleteItemOutput_ItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.DeleteItemOutput).Dtor_ItemCollectionMetrics().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementInputTransformInput_sdkInput_FromDafny(input interface{}) dynamodb.ExecuteStatementInput {
+	return dynamodb.ExecuteStatementInput{Statement: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Statement_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_Statement()),
+		Parameters:                          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Parameters_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_Parameters().UnwrapOr(nil)),
+		ConsistentRead:                      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ConsistentRead_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_ConsistentRead().UnwrapOr(nil)),
+		NextToken:                           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_NextToken_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_NextToken().UnwrapOr(nil)),
+		ReturnConsumedCapacity:              comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		Limit:                               comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Limit_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_Limit().UnwrapOr(nil)),
+		ReturnValuesOnConditionCheckFailure: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ReturnValuesOnConditionCheckFailure_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_ReturnValuesOnConditionCheckFailure().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementInputTransformOutput_transformedInput_FromDafny(input interface{}) dynamodb.ExecuteStatementInput {
+	return dynamodb.ExecuteStatementInput{Statement: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Statement_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_Statement()),
+		Parameters:                          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Parameters_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_Parameters().UnwrapOr(nil)),
+		ConsistentRead:                      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ConsistentRead_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_ConsistentRead().UnwrapOr(nil)),
+		NextToken:                           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_NextToken_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_NextToken().UnwrapOr(nil)),
+		ReturnConsumedCapacity:              comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		Limit:                               comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Limit_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_Limit().UnwrapOr(nil)),
+		ReturnValuesOnConditionCheckFailure: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ReturnValuesOnConditionCheckFailure_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_ReturnValuesOnConditionCheckFailure().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementOutputTransformInput_sdkOutput_FromDafny(input interface{}) dynamodb.ExecuteStatementOutput {
+	return dynamodb.ExecuteStatementOutput{Items: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementOutput_Items_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementOutput).Dtor_Items().UnwrapOr(nil)),
+		NextToken:        comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementOutput_NextToken_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementOutput).Dtor_NextToken().UnwrapOr(nil)),
+		ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+		LastEvaluatedKey: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementOutput_LastEvaluatedKey_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementOutput).Dtor_LastEvaluatedKey().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementOutputTransformInput_originalInput_FromDafny(input interface{}) dynamodb.ExecuteStatementInput {
+	return dynamodb.ExecuteStatementInput{Statement: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Statement_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_Statement()),
+		Parameters:                          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Parameters_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_Parameters().UnwrapOr(nil)),
+		ConsistentRead:                      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ConsistentRead_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_ConsistentRead().UnwrapOr(nil)),
+		NextToken:                           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_NextToken_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_NextToken().UnwrapOr(nil)),
+		ReturnConsumedCapacity:              comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		Limit:                               comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_Limit_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_Limit().UnwrapOr(nil)),
+		ReturnValuesOnConditionCheckFailure: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementInput_ReturnValuesOnConditionCheckFailure_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementInput).Dtor_ReturnValuesOnConditionCheckFailure().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteStatementOutputTransformOutput_transformedOutput_FromDafny(input interface{}) dynamodb.ExecuteStatementOutput {
+	return dynamodb.ExecuteStatementOutput{Items: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementOutput_Items_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementOutput).Dtor_Items().UnwrapOr(nil)),
+		NextToken:        comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementOutput_NextToken_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementOutput).Dtor_NextToken().UnwrapOr(nil)),
+		ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+		LastEvaluatedKey: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteStatementOutput_LastEvaluatedKey_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteStatementOutput).Dtor_LastEvaluatedKey().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionInputTransformInput_sdkInput_FromDafny(input interface{}) dynamodb.ExecuteTransactionInput {
+	return dynamodb.ExecuteTransactionInput{TransactStatements: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_TransactStatements_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteTransactionInput).Dtor_TransactStatements()),
+		ClientRequestToken:     comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_ClientRequestToken_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteTransactionInput).Dtor_ClientRequestToken().UnwrapOr(nil)),
+		ReturnConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteTransactionInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionInputTransformOutput_transformedInput_FromDafny(input interface{}) dynamodb.ExecuteTransactionInput {
+	return dynamodb.ExecuteTransactionInput{TransactStatements: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_TransactStatements_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteTransactionInput).Dtor_TransactStatements()),
+		ClientRequestToken:     comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_ClientRequestToken_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteTransactionInput).Dtor_ClientRequestToken().UnwrapOr(nil)),
+		ReturnConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteTransactionInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionOutputTransformInput_sdkOutput_FromDafny(input interface{}) dynamodb.ExecuteTransactionOutput {
+	return dynamodb.ExecuteTransactionOutput{Responses: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionOutput_Responses_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteTransactionOutput).Dtor_Responses().UnwrapOr(nil)),
+		ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteTransactionOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionOutputTransformInput_originalInput_FromDafny(input interface{}) dynamodb.ExecuteTransactionInput {
+	return dynamodb.ExecuteTransactionInput{TransactStatements: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_TransactStatements_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteTransactionInput).Dtor_TransactStatements()),
+		ClientRequestToken:     comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_ClientRequestToken_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteTransactionInput).Dtor_ClientRequestToken().UnwrapOr(nil)),
+		ReturnConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteTransactionInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ExecuteTransactionOutputTransformOutput_transformedOutput_FromDafny(input interface{}) dynamodb.ExecuteTransactionOutput {
+	return dynamodb.ExecuteTransactionOutput{Responses: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionOutput_Responses_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteTransactionOutput).Dtor_Responses().UnwrapOr(nil)),
+		ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ExecuteTransactionOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.ExecuteTransactionOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemInputTransformInput_sdkInput_FromDafny(input interface{}) dynamodb.GetItemInput {
+	return dynamodb.GetItemInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_TableName()),
+		Key:                      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_Key_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_Key()),
+		AttributesToGet:          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_AttributesToGet_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_AttributesToGet().UnwrapOr(nil)),
+		ConsistentRead:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ConsistentRead_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_ConsistentRead().UnwrapOr(nil)),
+		ReturnConsumedCapacity:   comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ProjectionExpression:     comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ProjectionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_ProjectionExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemInputTransformOutput_transformedInput_FromDafny(input interface{}) dynamodb.GetItemInput {
+	return dynamodb.GetItemInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_TableName()),
+		Key:                      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_Key_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_Key()),
+		AttributesToGet:          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_AttributesToGet_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_AttributesToGet().UnwrapOr(nil)),
+		ConsistentRead:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ConsistentRead_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_ConsistentRead().UnwrapOr(nil)),
+		ReturnConsumedCapacity:   comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ProjectionExpression:     comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ProjectionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_ProjectionExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemOutputTransformInput_sdkOutput_FromDafny(input interface{}) dynamodb.GetItemOutput {
+	return dynamodb.GetItemOutput{Item: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemOutput_Item_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemOutput).Dtor_Item().UnwrapOr(nil)),
+		ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemOutputTransformInput_originalInput_FromDafny(input interface{}) dynamodb.GetItemInput {
+	return dynamodb.GetItemInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_TableName()),
+		Key:                      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_Key_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_Key()),
+		AttributesToGet:          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_AttributesToGet_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_AttributesToGet().UnwrapOr(nil)),
+		ConsistentRead:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ConsistentRead_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_ConsistentRead().UnwrapOr(nil)),
+		ReturnConsumedCapacity:   comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ProjectionExpression:     comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ProjectionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_ProjectionExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_GetItemOutputTransformOutput_transformedOutput_FromDafny(input interface{}) dynamodb.GetItemOutput {
+	return dynamodb.GetItemOutput{Item: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemOutput_Item_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemOutput).Dtor_Item().UnwrapOr(nil)),
+		ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_GetItemOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.GetItemOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemInputTransformInput_sdkInput_FromDafny(input interface{}) dynamodb.PutItemInput {
+	return dynamodb.PutItemInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_TableName()),
+		Item:                                comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_Item_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_Item()),
+		Expected:                            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_Expected_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_Expected().UnwrapOr(nil)),
+		ReturnValues:                        comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnValues_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ReturnValues().UnwrapOr(nil)),
+		ReturnConsumedCapacity:              comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ReturnItemCollectionMetrics:         comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)),
+		ConditionalOperator:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ConditionalOperator_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ConditionalOperator().UnwrapOr(nil)),
+		ConditionExpression:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ConditionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ConditionExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+		ExpressionAttributeValues:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ExpressionAttributeValues_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ExpressionAttributeValues().UnwrapOr(nil)),
+		ReturnValuesOnConditionCheckFailure: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnValuesOnConditionCheckFailure_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ReturnValuesOnConditionCheckFailure().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemInputTransformOutput_transformedInput_FromDafny(input interface{}) dynamodb.PutItemInput {
+	return dynamodb.PutItemInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_TableName()),
+		Item:                                comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_Item_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_Item()),
+		Expected:                            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_Expected_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_Expected().UnwrapOr(nil)),
+		ReturnValues:                        comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnValues_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ReturnValues().UnwrapOr(nil)),
+		ReturnConsumedCapacity:              comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ReturnItemCollectionMetrics:         comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)),
+		ConditionalOperator:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ConditionalOperator_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ConditionalOperator().UnwrapOr(nil)),
+		ConditionExpression:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ConditionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ConditionExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+		ExpressionAttributeValues:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ExpressionAttributeValues_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ExpressionAttributeValues().UnwrapOr(nil)),
+		ReturnValuesOnConditionCheckFailure: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnValuesOnConditionCheckFailure_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ReturnValuesOnConditionCheckFailure().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemOutputTransformInput_sdkOutput_FromDafny(input interface{}) dynamodb.PutItemOutput {
+	return dynamodb.PutItemOutput{Attributes: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemOutput_Attributes_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemOutput).Dtor_Attributes().UnwrapOr(nil)),
+		ConsumedCapacity:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+		ItemCollectionMetrics: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemOutput_ItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemOutput).Dtor_ItemCollectionMetrics().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemOutputTransformInput_originalInput_FromDafny(input interface{}) dynamodb.PutItemInput {
+	return dynamodb.PutItemInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_TableName()),
+		Item:                                comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_Item_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_Item()),
+		Expected:                            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_Expected_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_Expected().UnwrapOr(nil)),
+		ReturnValues:                        comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnValues_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ReturnValues().UnwrapOr(nil)),
+		ReturnConsumedCapacity:              comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ReturnItemCollectionMetrics:         comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)),
+		ConditionalOperator:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ConditionalOperator_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ConditionalOperator().UnwrapOr(nil)),
+		ConditionExpression:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ConditionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ConditionExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+		ExpressionAttributeValues:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ExpressionAttributeValues_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ExpressionAttributeValues().UnwrapOr(nil)),
+		ReturnValuesOnConditionCheckFailure: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemInput_ReturnValuesOnConditionCheckFailure_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemInput).Dtor_ReturnValuesOnConditionCheckFailure().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_PutItemOutputTransformOutput_transformedOutput_FromDafny(input interface{}) dynamodb.PutItemOutput {
+	return dynamodb.PutItemOutput{Attributes: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemOutput_Attributes_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemOutput).Dtor_Attributes().UnwrapOr(nil)),
+		ConsumedCapacity:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+		ItemCollectionMetrics: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_PutItemOutput_ItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.PutItemOutput).Dtor_ItemCollectionMetrics().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryInputTransformInput_sdkInput_FromDafny(input interface{}) dynamodb.QueryInput {
+	return dynamodb.QueryInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_TableName()),
+		IndexName:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_IndexName_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_IndexName().UnwrapOr(nil)),
+		Select:                    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_Select_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_Select().UnwrapOr(nil)),
+		AttributesToGet:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_AttributesToGet_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_AttributesToGet().UnwrapOr(nil)),
+		Limit:                     comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_Limit_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_Limit().UnwrapOr(nil)),
+		ConsistentRead:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ConsistentRead_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ConsistentRead().UnwrapOr(nil)),
+		KeyConditions:             comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_KeyConditions_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_KeyConditions().UnwrapOr(nil)),
+		QueryFilter:               comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_QueryFilter_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_QueryFilter().UnwrapOr(nil)),
+		ConditionalOperator:       comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ConditionalOperator_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ConditionalOperator().UnwrapOr(nil)),
+		ScanIndexForward:          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ScanIndexForward_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ScanIndexForward().UnwrapOr(nil)),
+		ExclusiveStartKey:         comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExclusiveStartKey_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ExclusiveStartKey().UnwrapOr(nil)),
+		ReturnConsumedCapacity:    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ProjectionExpression:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ProjectionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ProjectionExpression().UnwrapOr(nil)),
+		FilterExpression:          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_FilterExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_FilterExpression().UnwrapOr(nil)),
+		KeyConditionExpression:    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_KeyConditionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_KeyConditionExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames:  comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+		ExpressionAttributeValues: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExpressionAttributeValues_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ExpressionAttributeValues().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryInputTransformOutput_transformedInput_FromDafny(input interface{}) dynamodb.QueryInput {
+	return dynamodb.QueryInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_TableName()),
+		IndexName:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_IndexName_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_IndexName().UnwrapOr(nil)),
+		Select:                    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_Select_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_Select().UnwrapOr(nil)),
+		AttributesToGet:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_AttributesToGet_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_AttributesToGet().UnwrapOr(nil)),
+		Limit:                     comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_Limit_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_Limit().UnwrapOr(nil)),
+		ConsistentRead:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ConsistentRead_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ConsistentRead().UnwrapOr(nil)),
+		KeyConditions:             comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_KeyConditions_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_KeyConditions().UnwrapOr(nil)),
+		QueryFilter:               comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_QueryFilter_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_QueryFilter().UnwrapOr(nil)),
+		ConditionalOperator:       comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ConditionalOperator_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ConditionalOperator().UnwrapOr(nil)),
+		ScanIndexForward:          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ScanIndexForward_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ScanIndexForward().UnwrapOr(nil)),
+		ExclusiveStartKey:         comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExclusiveStartKey_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ExclusiveStartKey().UnwrapOr(nil)),
+		ReturnConsumedCapacity:    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ProjectionExpression:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ProjectionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ProjectionExpression().UnwrapOr(nil)),
+		FilterExpression:          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_FilterExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_FilterExpression().UnwrapOr(nil)),
+		KeyConditionExpression:    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_KeyConditionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_KeyConditionExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames:  comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+		ExpressionAttributeValues: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExpressionAttributeValues_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ExpressionAttributeValues().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryOutputTransformInput_sdkOutput_FromDafny(input interface{}) dynamodb.QueryOutput {
+	return dynamodb.QueryOutput{Items: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_Items_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryOutput).Dtor_Items().UnwrapOr(nil)),
+		Count:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_Count_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryOutput).Dtor_Count().UnwrapOr(nil)),
+		ScannedCount:     comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_ScannedCount_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryOutput).Dtor_ScannedCount().UnwrapOr(nil)),
+		LastEvaluatedKey: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_LastEvaluatedKey_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryOutput).Dtor_LastEvaluatedKey().UnwrapOr(nil)),
+		ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryOutputTransformInput_originalInput_FromDafny(input interface{}) dynamodb.QueryInput {
+	return dynamodb.QueryInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_TableName()),
+		IndexName:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_IndexName_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_IndexName().UnwrapOr(nil)),
+		Select:                    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_Select_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_Select().UnwrapOr(nil)),
+		AttributesToGet:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_AttributesToGet_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_AttributesToGet().UnwrapOr(nil)),
+		Limit:                     comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_Limit_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_Limit().UnwrapOr(nil)),
+		ConsistentRead:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ConsistentRead_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ConsistentRead().UnwrapOr(nil)),
+		KeyConditions:             comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_KeyConditions_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_KeyConditions().UnwrapOr(nil)),
+		QueryFilter:               comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_QueryFilter_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_QueryFilter().UnwrapOr(nil)),
+		ConditionalOperator:       comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ConditionalOperator_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ConditionalOperator().UnwrapOr(nil)),
+		ScanIndexForward:          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ScanIndexForward_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ScanIndexForward().UnwrapOr(nil)),
+		ExclusiveStartKey:         comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExclusiveStartKey_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ExclusiveStartKey().UnwrapOr(nil)),
+		ReturnConsumedCapacity:    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ProjectionExpression:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ProjectionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ProjectionExpression().UnwrapOr(nil)),
+		FilterExpression:          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_FilterExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_FilterExpression().UnwrapOr(nil)),
+		KeyConditionExpression:    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_KeyConditionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_KeyConditionExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames:  comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+		ExpressionAttributeValues: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryInput_ExpressionAttributeValues_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryInput).Dtor_ExpressionAttributeValues().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_QueryOutputTransformOutput_transformedOutput_FromDafny(input interface{}) dynamodb.QueryOutput {
+	return dynamodb.QueryOutput{Items: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_Items_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryOutput).Dtor_Items().UnwrapOr(nil)),
+		Count:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_Count_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryOutput).Dtor_Count().UnwrapOr(nil)),
+		ScannedCount:     comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_ScannedCount_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryOutput).Dtor_ScannedCount().UnwrapOr(nil)),
+		LastEvaluatedKey: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_LastEvaluatedKey_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryOutput).Dtor_LastEvaluatedKey().UnwrapOr(nil)),
+		ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_QueryOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.QueryOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesInput_TableName_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesInput_Item_FromDafny(input interface{}) map[string]dynamodbtypes.AttributeValue {
+	var m map[string]dynamodbtypes.AttributeValue = make(map[string]dynamodbtypes.AttributeValue)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_AttributeMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesInput_Version_FromDafny(input interface{}) *int32 {
+	return func() *int32 {
+		var b int32
+		if input == nil {
+			return nil
+		}
+		b = input.(int32)
+		return &b
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesOutput_VirtualFields_FromDafny(input interface{}) map[string]string {
+	var m map[string]string = make(map[string]string)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_StringMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_StringMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_StringMap_key_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_StringMap_value_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesOutput_CompoundBeacons_FromDafny(input interface{}) map[string]string {
+	var m map[string]string = make(map[string]string)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_StringMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_StringMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanInputTransformInput_sdkInput_FromDafny(input interface{}) dynamodb.ScanInput {
+	return dynamodb.ScanInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_TableName()),
+		IndexName:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_IndexName_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_IndexName().UnwrapOr(nil)),
+		AttributesToGet:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_AttributesToGet_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_AttributesToGet().UnwrapOr(nil)),
+		Limit:                     comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Limit_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_Limit().UnwrapOr(nil)),
+		Select:                    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Select_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_Select().UnwrapOr(nil)),
+		ScanFilter:                comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ScanFilter_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ScanFilter().UnwrapOr(nil)),
+		ConditionalOperator:       comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ConditionalOperator_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ConditionalOperator().UnwrapOr(nil)),
+		ExclusiveStartKey:         comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExclusiveStartKey_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ExclusiveStartKey().UnwrapOr(nil)),
+		ReturnConsumedCapacity:    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		TotalSegments:             comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_TotalSegments_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_TotalSegments().UnwrapOr(nil)),
+		Segment:                   comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Segment_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_Segment().UnwrapOr(nil)),
+		ProjectionExpression:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ProjectionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ProjectionExpression().UnwrapOr(nil)),
+		FilterExpression:          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_FilterExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_FilterExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames:  comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+		ExpressionAttributeValues: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExpressionAttributeValues_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ExpressionAttributeValues().UnwrapOr(nil)),
+		ConsistentRead:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ConsistentRead_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ConsistentRead().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanInputTransformOutput_transformedInput_FromDafny(input interface{}) dynamodb.ScanInput {
+	return dynamodb.ScanInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_TableName()),
+		IndexName:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_IndexName_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_IndexName().UnwrapOr(nil)),
+		AttributesToGet:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_AttributesToGet_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_AttributesToGet().UnwrapOr(nil)),
+		Limit:                     comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Limit_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_Limit().UnwrapOr(nil)),
+		Select:                    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Select_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_Select().UnwrapOr(nil)),
+		ScanFilter:                comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ScanFilter_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ScanFilter().UnwrapOr(nil)),
+		ConditionalOperator:       comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ConditionalOperator_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ConditionalOperator().UnwrapOr(nil)),
+		ExclusiveStartKey:         comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExclusiveStartKey_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ExclusiveStartKey().UnwrapOr(nil)),
+		ReturnConsumedCapacity:    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		TotalSegments:             comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_TotalSegments_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_TotalSegments().UnwrapOr(nil)),
+		Segment:                   comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Segment_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_Segment().UnwrapOr(nil)),
+		ProjectionExpression:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ProjectionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ProjectionExpression().UnwrapOr(nil)),
+		FilterExpression:          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_FilterExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_FilterExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames:  comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+		ExpressionAttributeValues: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExpressionAttributeValues_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ExpressionAttributeValues().UnwrapOr(nil)),
+		ConsistentRead:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ConsistentRead_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ConsistentRead().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanOutputTransformInput_sdkOutput_FromDafny(input interface{}) dynamodb.ScanOutput {
+	return dynamodb.ScanOutput{Items: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_Items_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanOutput).Dtor_Items().UnwrapOr(nil)),
+		Count:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_Count_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanOutput).Dtor_Count().UnwrapOr(nil)),
+		ScannedCount:     comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_ScannedCount_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanOutput).Dtor_ScannedCount().UnwrapOr(nil)),
+		LastEvaluatedKey: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_LastEvaluatedKey_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanOutput).Dtor_LastEvaluatedKey().UnwrapOr(nil)),
+		ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanOutputTransformInput_originalInput_FromDafny(input interface{}) dynamodb.ScanInput {
+	return dynamodb.ScanInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_TableName()),
+		IndexName:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_IndexName_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_IndexName().UnwrapOr(nil)),
+		AttributesToGet:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_AttributesToGet_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_AttributesToGet().UnwrapOr(nil)),
+		Limit:                     comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Limit_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_Limit().UnwrapOr(nil)),
+		Select:                    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Select_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_Select().UnwrapOr(nil)),
+		ScanFilter:                comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ScanFilter_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ScanFilter().UnwrapOr(nil)),
+		ConditionalOperator:       comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ConditionalOperator_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ConditionalOperator().UnwrapOr(nil)),
+		ExclusiveStartKey:         comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExclusiveStartKey_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ExclusiveStartKey().UnwrapOr(nil)),
+		ReturnConsumedCapacity:    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		TotalSegments:             comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_TotalSegments_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_TotalSegments().UnwrapOr(nil)),
+		Segment:                   comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_Segment_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_Segment().UnwrapOr(nil)),
+		ProjectionExpression:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ProjectionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ProjectionExpression().UnwrapOr(nil)),
+		FilterExpression:          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_FilterExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_FilterExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames:  comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+		ExpressionAttributeValues: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ExpressionAttributeValues_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ExpressionAttributeValues().UnwrapOr(nil)),
+		ConsistentRead:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanInput_ConsistentRead_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanInput).Dtor_ConsistentRead().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ScanOutputTransformOutput_transformedOutput_FromDafny(input interface{}) dynamodb.ScanOutput {
+	return dynamodb.ScanOutput{Items: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_Items_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanOutput).Dtor_Items().UnwrapOr(nil)),
+		Count:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_Count_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanOutput).Dtor_Count().UnwrapOr(nil)),
+		ScannedCount:     comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_ScannedCount_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanOutput).Dtor_ScannedCount().UnwrapOr(nil)),
+		LastEvaluatedKey: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_LastEvaluatedKey_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanOutput).Dtor_LastEvaluatedKey().UnwrapOr(nil)),
+		ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_ScanOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.ScanOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsInputTransformInput_sdkInput_FromDafny(input interface{}) dynamodb.TransactGetItemsInput {
+	return dynamodb.TransactGetItemsInput{TransactItems: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsInput_TransactItems_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactGetItemsInput).Dtor_TransactItems()),
+		ReturnConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactGetItemsInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsInputTransformOutput_transformedInput_FromDafny(input interface{}) dynamodb.TransactGetItemsInput {
+	return dynamodb.TransactGetItemsInput{TransactItems: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsInput_TransactItems_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactGetItemsInput).Dtor_TransactItems()),
+		ReturnConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactGetItemsInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsOutputTransformInput_sdkOutput_FromDafny(input interface{}) dynamodb.TransactGetItemsOutput {
+	return dynamodb.TransactGetItemsOutput{ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactGetItemsOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+		Responses: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsOutput_Responses_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactGetItemsOutput).Dtor_Responses().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsOutputTransformInput_originalInput_FromDafny(input interface{}) dynamodb.TransactGetItemsInput {
+	return dynamodb.TransactGetItemsInput{TransactItems: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsInput_TransactItems_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactGetItemsInput).Dtor_TransactItems()),
+		ReturnConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactGetItemsInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactGetItemsOutputTransformOutput_transformedOutput_FromDafny(input interface{}) dynamodb.TransactGetItemsOutput {
+	return dynamodb.TransactGetItemsOutput{ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactGetItemsOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+		Responses: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactGetItemsOutput_Responses_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactGetItemsOutput).Dtor_Responses().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsInputTransformInput_sdkInput_FromDafny(input interface{}) dynamodb.TransactWriteItemsInput {
+	return dynamodb.TransactWriteItemsInput{TransactItems: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_TransactItems_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItemsInput).Dtor_TransactItems()),
+		ReturnConsumedCapacity:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItemsInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ReturnItemCollectionMetrics: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ReturnItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItemsInput).Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)),
+		ClientRequestToken:          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ClientRequestToken_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItemsInput).Dtor_ClientRequestToken().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsInputTransformOutput_transformedInput_FromDafny(input interface{}) dynamodb.TransactWriteItemsInput {
+	return dynamodb.TransactWriteItemsInput{TransactItems: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_TransactItems_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItemsInput).Dtor_TransactItems()),
+		ReturnConsumedCapacity:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItemsInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ReturnItemCollectionMetrics: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ReturnItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItemsInput).Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)),
+		ClientRequestToken:          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ClientRequestToken_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItemsInput).Dtor_ClientRequestToken().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsOutputTransformInput_sdkOutput_FromDafny(input interface{}) dynamodb.TransactWriteItemsOutput {
+	return dynamodb.TransactWriteItemsOutput{ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItemsOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+		ItemCollectionMetrics: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsOutput_ItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItemsOutput).Dtor_ItemCollectionMetrics().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsOutputTransformInput_originalInput_FromDafny(input interface{}) dynamodb.TransactWriteItemsInput {
+	return dynamodb.TransactWriteItemsInput{TransactItems: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_TransactItems_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItemsInput).Dtor_TransactItems()),
+		ReturnConsumedCapacity:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItemsInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ReturnItemCollectionMetrics: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ReturnItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItemsInput).Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)),
+		ClientRequestToken:          comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsInput_ClientRequestToken_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItemsInput).Dtor_ClientRequestToken().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_TransactWriteItemsOutputTransformOutput_transformedOutput_FromDafny(input interface{}) dynamodb.TransactWriteItemsOutput {
+	return dynamodb.TransactWriteItemsOutput{ConsumedCapacity: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItemsOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+		ItemCollectionMetrics: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_TransactWriteItemsOutput_ItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.TransactWriteItemsOutput).Dtor_ItemCollectionMetrics().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemInputTransformInput_sdkInput_FromDafny(input interface{}) dynamodb.UpdateItemInput {
+	return dynamodb.UpdateItemInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_TableName()),
+		Key:                                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_Key_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_Key()),
+		AttributeUpdates:                    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_AttributeUpdates_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_AttributeUpdates().UnwrapOr(nil)),
+		Expected:                            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_Expected_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_Expected().UnwrapOr(nil)),
+		ConditionalOperator:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ConditionalOperator_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ConditionalOperator().UnwrapOr(nil)),
+		ReturnValues:                        comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnValues_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ReturnValues().UnwrapOr(nil)),
+		ReturnConsumedCapacity:              comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ReturnItemCollectionMetrics:         comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)),
+		UpdateExpression:                    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_UpdateExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_UpdateExpression().UnwrapOr(nil)),
+		ConditionExpression:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ConditionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ConditionExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+		ExpressionAttributeValues:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ExpressionAttributeValues_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ExpressionAttributeValues().UnwrapOr(nil)),
+		ReturnValuesOnConditionCheckFailure: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnValuesOnConditionCheckFailure_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ReturnValuesOnConditionCheckFailure().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemInputTransformOutput_transformedInput_FromDafny(input interface{}) dynamodb.UpdateItemInput {
+	return dynamodb.UpdateItemInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_TableName()),
+		Key:                                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_Key_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_Key()),
+		AttributeUpdates:                    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_AttributeUpdates_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_AttributeUpdates().UnwrapOr(nil)),
+		Expected:                            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_Expected_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_Expected().UnwrapOr(nil)),
+		ConditionalOperator:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ConditionalOperator_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ConditionalOperator().UnwrapOr(nil)),
+		ReturnValues:                        comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnValues_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ReturnValues().UnwrapOr(nil)),
+		ReturnConsumedCapacity:              comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ReturnItemCollectionMetrics:         comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)),
+		UpdateExpression:                    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_UpdateExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_UpdateExpression().UnwrapOr(nil)),
+		ConditionExpression:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ConditionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ConditionExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+		ExpressionAttributeValues:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ExpressionAttributeValues_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ExpressionAttributeValues().UnwrapOr(nil)),
+		ReturnValuesOnConditionCheckFailure: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnValuesOnConditionCheckFailure_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ReturnValuesOnConditionCheckFailure().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemOutputTransformInput_sdkOutput_FromDafny(input interface{}) dynamodb.UpdateItemOutput {
+	return dynamodb.UpdateItemOutput{Attributes: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemOutput_Attributes_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemOutput).Dtor_Attributes().UnwrapOr(nil)),
+		ConsumedCapacity:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+		ItemCollectionMetrics: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemOutput_ItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemOutput).Dtor_ItemCollectionMetrics().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemOutputTransformInput_originalInput_FromDafny(input interface{}) dynamodb.UpdateItemInput {
+	return dynamodb.UpdateItemInput{TableName: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_TableName_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_TableName()),
+		Key:                                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_Key_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_Key()),
+		AttributeUpdates:                    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_AttributeUpdates_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_AttributeUpdates().UnwrapOr(nil)),
+		Expected:                            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_Expected_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_Expected().UnwrapOr(nil)),
+		ConditionalOperator:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ConditionalOperator_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ConditionalOperator().UnwrapOr(nil)),
+		ReturnValues:                        comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnValues_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ReturnValues().UnwrapOr(nil)),
+		ReturnConsumedCapacity:              comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ReturnConsumedCapacity().UnwrapOr(nil)),
+		ReturnItemCollectionMetrics:         comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ReturnItemCollectionMetrics().UnwrapOr(nil)),
+		UpdateExpression:                    comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_UpdateExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_UpdateExpression().UnwrapOr(nil)),
+		ConditionExpression:                 comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ConditionExpression_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ConditionExpression().UnwrapOr(nil)),
+		ExpressionAttributeNames:            comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ExpressionAttributeNames_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ExpressionAttributeNames().UnwrapOr(nil)),
+		ExpressionAttributeValues:           comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ExpressionAttributeValues_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ExpressionAttributeValues().UnwrapOr(nil)),
+		ReturnValuesOnConditionCheckFailure: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemInput_ReturnValuesOnConditionCheckFailure_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemInput).Dtor_ReturnValuesOnConditionCheckFailure().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_UpdateItemOutputTransformOutput_transformedOutput_FromDafny(input interface{}) dynamodb.UpdateItemOutput {
+	return dynamodb.UpdateItemOutput{Attributes: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemOutput_Attributes_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemOutput).Dtor_Attributes().UnwrapOr(nil)),
+		ConsumedCapacity:      comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemOutput_ConsumedCapacity_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemOutput).Dtor_ConsumedCapacity().UnwrapOr(nil)),
+		ItemCollectionMetrics: comamazonawsdynamodbsmithygenerated.Com_amazonaws_dynamodb_UpdateItemOutput_ItemCollectionMetrics_FromDafny(input.(ComAmazonawsDynamodbTypes.UpdateItemOutput).Dtor_ItemCollectionMetrics().UnwrapOr(nil)),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_DynamoDbEncryptionTransformsException_message_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes/errors.go b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes/errors.go
new file mode 100644
index 000000000..c827f8620
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes/errors.go
@@ -0,0 +1,17 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes
+
+import (
+	"fmt"
+)
+
+type DynamoDbEncryptionTransformsException struct {
+	DynamoDbEncryptionTransformsBaseException
+	Message           string
+	ErrorCodeOverride *string
+}
+
+func (e DynamoDbEncryptionTransformsException) Error() string {
+	return fmt.Sprintf("%s: %s", e.ErrorCodeOverride, e.Message)
+}
diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes/types.go b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes/types.go
new file mode 100644
index 000000000..55c7f111b
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes/types.go
@@ -0,0 +1,702 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes
+
+import (
+	"fmt"
+
+	"github.com/aws/aws-sdk-go-v2/service/dynamodb"
+	dynamodbtypes "github.com/aws/aws-sdk-go-v2/service/dynamodb/types"
+)
+
+type ResolveAttributesOutput struct {
+	CompoundBeacons map[string]string
+
+	VirtualFields map[string]string
+}
+
+func (input ResolveAttributesOutput) Validate() error {
+	if input.CompoundBeacons == nil {
+		return fmt.Errorf("input.CompoundBeacons is required but has a nil value.")
+	}
+	if input.VirtualFields == nil {
+		return fmt.Errorf("input.VirtualFields is required but has a nil value.")
+	}
+
+	return nil
+}
+
+type ResolveAttributesInput struct {
+	Item map[string]dynamodbtypes.AttributeValue
+
+	TableName string
+
+	Version *int32
+}
+
+func (input ResolveAttributesInput) Validate() error {
+	if input.Item == nil {
+		return fmt.Errorf("input.Item is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesInput_Item_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesInput_Item_Validate()
+	}
+	if len(input.TableName) < 3 {
+		return fmt.Errorf("TableName has a minimum length of 3 but has the length of %d.", len(input.TableName))
+	}
+	if len(input.TableName) > 255 {
+		return fmt.Errorf("TableName has a maximum length of 255 but has the length of %d.", len(input.TableName))
+	}
+	if input.Version != nil {
+		if *input.Version < 1 {
+			return fmt.Errorf("VersionNumber has a minimum of 1 but has the value of %d.", *input.Version)
+		}
+	}
+
+	return nil
+}
+
+func (input ResolveAttributesInput) Com_amazonaws_dynamodb_AttributeMap_value_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+	case *dynamodbtypes.AttributeValueMemberL:
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input ResolveAttributesInput) Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+		if input.Com_amazonaws_dynamodb_AttributeValue_M_Validate(unionType.Value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeValue_M_Validate(unionType.Value)
+		}
+	case *dynamodbtypes.AttributeValueMemberL:
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input ResolveAttributesInput) Com_amazonaws_dynamodb_AttributeValue_M_Validate(Value map[string]dynamodbtypes.AttributeValue) error {
+	for key, value := range Value {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+		if input.Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(value) != nil {
+			return input.Com_amazonaws_dynamodb_MapAttributeValue_value_Validate(value)
+		}
+	}
+
+	return nil
+}
+func (input ResolveAttributesInput) Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(Value dynamodbtypes.AttributeValue) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *dynamodbtypes.AttributeValueMemberS:
+	case *dynamodbtypes.AttributeValueMemberN:
+	case *dynamodbtypes.AttributeValueMemberB:
+	case *dynamodbtypes.AttributeValueMemberSS:
+	case *dynamodbtypes.AttributeValueMemberNS:
+	case *dynamodbtypes.AttributeValueMemberBS:
+	case *dynamodbtypes.AttributeValueMemberM:
+	case *dynamodbtypes.AttributeValueMemberL:
+		if input.Com_amazonaws_dynamodb_AttributeValue_L_Validate(unionType.Value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeValue_L_Validate(unionType.Value)
+		}
+	case *dynamodbtypes.AttributeValueMemberNULL:
+	case *dynamodbtypes.AttributeValueMemberBOOL:
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input ResolveAttributesInput) Com_amazonaws_dynamodb_AttributeValue_L_Validate(Value []dynamodbtypes.AttributeValue) error {
+	for _, item := range Value {
+		if input.Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(item) != nil {
+			return input.Com_amazonaws_dynamodb_ListAttributeValue_member_Validate(item)
+		}
+	}
+
+	return nil
+}
+func (input ResolveAttributesInput) Aws_cryptography_dbEncryptionSdk_dynamoDb_transforms_ResolveAttributesInput_Item_Validate() error {
+	for key, value := range input.Item {
+		if len(key) < 0 {
+			return fmt.Errorf("AttributeName has a minimum length of 0 but has the length of %d.", len(key))
+		}
+		if len(key) > 65535 {
+			return fmt.Errorf("AttributeName has a maximum length of 65535 but has the length of %d.", len(key))
+		}
+		if input.Com_amazonaws_dynamodb_AttributeMap_value_Validate(value) != nil {
+			return input.Com_amazonaws_dynamodb_AttributeMap_value_Validate(value)
+		}
+	}
+
+	return nil
+}
+
+type ExecuteStatementInputTransformInput struct {
+	SdkInput dynamodb.ExecuteStatementInput
+}
+
+func (input ExecuteStatementInputTransformInput) Validate() error {
+
+	return nil
+}
+
+type ExecuteStatementInputTransformOutput struct {
+	TransformedInput dynamodb.ExecuteStatementInput
+}
+
+func (input ExecuteStatementInputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type GetItemInputTransformInput struct {
+	SdkInput dynamodb.GetItemInput
+}
+
+func (input GetItemInputTransformInput) Validate() error {
+
+	return nil
+}
+
+type GetItemInputTransformOutput struct {
+	TransformedInput dynamodb.GetItemInput
+}
+
+func (input GetItemInputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type GetItemOutputTransformOutput struct {
+	TransformedOutput dynamodb.GetItemOutput
+}
+
+func (input GetItemOutputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type BatchExecuteStatementInputTransformInput struct {
+	SdkInput dynamodb.BatchExecuteStatementInput
+}
+
+func (input BatchExecuteStatementInputTransformInput) Validate() error {
+
+	return nil
+}
+
+type BatchExecuteStatementInputTransformOutput struct {
+	TransformedInput dynamodb.BatchExecuteStatementInput
+}
+
+func (input BatchExecuteStatementInputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type ExecuteTransactionInputTransformInput struct {
+	SdkInput dynamodb.ExecuteTransactionInput
+}
+
+func (input ExecuteTransactionInputTransformInput) Validate() error {
+
+	return nil
+}
+
+type ExecuteTransactionInputTransformOutput struct {
+	TransformedInput dynamodb.ExecuteTransactionInput
+}
+
+func (input ExecuteTransactionInputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type ExecuteTransactionOutputTransformOutput struct {
+	TransformedOutput dynamodb.ExecuteTransactionOutput
+}
+
+func (input ExecuteTransactionOutputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type TransactGetItemsOutputTransformOutput struct {
+	TransformedOutput dynamodb.TransactGetItemsOutput
+}
+
+func (input TransactGetItemsOutputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type BatchGetItemInputTransformInput struct {
+	SdkInput dynamodb.BatchGetItemInput
+}
+
+func (input BatchGetItemInputTransformInput) Validate() error {
+
+	return nil
+}
+
+type BatchGetItemInputTransformOutput struct {
+	TransformedInput dynamodb.BatchGetItemInput
+}
+
+func (input BatchGetItemInputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type TransactGetItemsInputTransformInput struct {
+	SdkInput dynamodb.TransactGetItemsInput
+}
+
+func (input TransactGetItemsInputTransformInput) Validate() error {
+
+	return nil
+}
+
+type TransactGetItemsInputTransformOutput struct {
+	TransformedInput dynamodb.TransactGetItemsInput
+}
+
+func (input TransactGetItemsInputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type TransactWriteItemsOutputTransformOutput struct {
+	TransformedOutput dynamodb.TransactWriteItemsOutput
+}
+
+func (input TransactWriteItemsOutputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type GetItemOutputTransformInput struct {
+	OriginalInput dynamodb.GetItemInput
+
+	SdkOutput dynamodb.GetItemOutput
+}
+
+func (input GetItemOutputTransformInput) Validate() error {
+
+	return nil
+}
+
+type DeleteItemOutputTransformOutput struct {
+	TransformedOutput dynamodb.DeleteItemOutput
+}
+
+func (input DeleteItemOutputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type ExecuteStatementOutputTransformOutput struct {
+	TransformedOutput dynamodb.ExecuteStatementOutput
+}
+
+func (input ExecuteStatementOutputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type PutItemOutputTransformOutput struct {
+	TransformedOutput dynamodb.PutItemOutput
+}
+
+func (input PutItemOutputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type QueryOutputTransformOutput struct {
+	TransformedOutput dynamodb.QueryOutput
+}
+
+func (input QueryOutputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type ScanOutputTransformOutput struct {
+	TransformedOutput dynamodb.ScanOutput
+}
+
+func (input ScanOutputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type UpdateItemOutputTransformOutput struct {
+	TransformedOutput dynamodb.UpdateItemOutput
+}
+
+func (input UpdateItemOutputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type ExecuteTransactionOutputTransformInput struct {
+	OriginalInput dynamodb.ExecuteTransactionInput
+
+	SdkOutput dynamodb.ExecuteTransactionOutput
+}
+
+func (input ExecuteTransactionOutputTransformInput) Validate() error {
+
+	return nil
+}
+
+type BatchExecuteStatementOutputTransformOutput struct {
+	TransformedOutput dynamodb.BatchExecuteStatementOutput
+}
+
+func (input BatchExecuteStatementOutputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type BatchGetItemOutputTransformOutput struct {
+	TransformedOutput dynamodb.BatchGetItemOutput
+}
+
+func (input BatchGetItemOutputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type TransactGetItemsOutputTransformInput struct {
+	OriginalInput dynamodb.TransactGetItemsInput
+
+	SdkOutput dynamodb.TransactGetItemsOutput
+}
+
+func (input TransactGetItemsOutputTransformInput) Validate() error {
+
+	return nil
+}
+
+type ExecuteStatementOutputTransformInput struct {
+	OriginalInput dynamodb.ExecuteStatementInput
+
+	SdkOutput dynamodb.ExecuteStatementOutput
+}
+
+func (input ExecuteStatementOutputTransformInput) Validate() error {
+
+	return nil
+}
+
+type ScanInputTransformInput struct {
+	SdkInput dynamodb.ScanInput
+}
+
+func (input ScanInputTransformInput) Validate() error {
+
+	return nil
+}
+
+type ScanInputTransformOutput struct {
+	TransformedInput dynamodb.ScanInput
+}
+
+func (input ScanInputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type BatchWriteItemInputTransformInput struct {
+	SdkInput dynamodb.BatchWriteItemInput
+}
+
+func (input BatchWriteItemInputTransformInput) Validate() error {
+
+	return nil
+}
+
+type BatchWriteItemInputTransformOutput struct {
+	TransformedInput dynamodb.BatchWriteItemInput
+}
+
+func (input BatchWriteItemInputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type BatchExecuteStatementOutputTransformInput struct {
+	OriginalInput dynamodb.BatchExecuteStatementInput
+
+	SdkOutput dynamodb.BatchExecuteStatementOutput
+}
+
+func (input BatchExecuteStatementOutputTransformInput) Validate() error {
+
+	return nil
+}
+
+type BatchGetItemOutputTransformInput struct {
+	OriginalInput dynamodb.BatchGetItemInput
+
+	SdkOutput dynamodb.BatchGetItemOutput
+}
+
+func (input BatchGetItemOutputTransformInput) Validate() error {
+
+	return nil
+}
+
+type DeleteItemInputTransformInput struct {
+	SdkInput dynamodb.DeleteItemInput
+}
+
+func (input DeleteItemInputTransformInput) Validate() error {
+
+	return nil
+}
+
+type DeleteItemInputTransformOutput struct {
+	TransformedInput dynamodb.DeleteItemInput
+}
+
+func (input DeleteItemInputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type PutItemInputTransformInput struct {
+	SdkInput dynamodb.PutItemInput
+}
+
+func (input PutItemInputTransformInput) Validate() error {
+
+	return nil
+}
+
+type PutItemInputTransformOutput struct {
+	TransformedInput dynamodb.PutItemInput
+}
+
+func (input PutItemInputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type QueryInputTransformInput struct {
+	SdkInput dynamodb.QueryInput
+}
+
+func (input QueryInputTransformInput) Validate() error {
+
+	return nil
+}
+
+type QueryInputTransformOutput struct {
+	TransformedInput dynamodb.QueryInput
+}
+
+func (input QueryInputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type BatchWriteItemOutputTransformOutput struct {
+	TransformedOutput dynamodb.BatchWriteItemOutput
+}
+
+func (input BatchWriteItemOutputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type ScanOutputTransformInput struct {
+	OriginalInput dynamodb.ScanInput
+
+	SdkOutput dynamodb.ScanOutput
+}
+
+func (input ScanOutputTransformInput) Validate() error {
+
+	return nil
+}
+
+type UpdateItemInputTransformInput struct {
+	SdkInput dynamodb.UpdateItemInput
+}
+
+func (input UpdateItemInputTransformInput) Validate() error {
+
+	return nil
+}
+
+type UpdateItemInputTransformOutput struct {
+	TransformedInput dynamodb.UpdateItemInput
+}
+
+func (input UpdateItemInputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type DeleteItemOutputTransformInput struct {
+	OriginalInput dynamodb.DeleteItemInput
+
+	SdkOutput dynamodb.DeleteItemOutput
+}
+
+func (input DeleteItemOutputTransformInput) Validate() error {
+
+	return nil
+}
+
+type PutItemOutputTransformInput struct {
+	OriginalInput dynamodb.PutItemInput
+
+	SdkOutput dynamodb.PutItemOutput
+}
+
+func (input PutItemOutputTransformInput) Validate() error {
+
+	return nil
+}
+
+type QueryOutputTransformInput struct {
+	OriginalInput dynamodb.QueryInput
+
+	SdkOutput dynamodb.QueryOutput
+}
+
+func (input QueryOutputTransformInput) Validate() error {
+
+	return nil
+}
+
+type UpdateItemOutputTransformInput struct {
+	OriginalInput dynamodb.UpdateItemInput
+
+	SdkOutput dynamodb.UpdateItemOutput
+}
+
+func (input UpdateItemOutputTransformInput) Validate() error {
+
+	return nil
+}
+
+type BatchWriteItemOutputTransformInput struct {
+	OriginalInput dynamodb.BatchWriteItemInput
+
+	SdkOutput dynamodb.BatchWriteItemOutput
+}
+
+func (input BatchWriteItemOutputTransformInput) Validate() error {
+
+	return nil
+}
+
+type TransactWriteItemsInputTransformInput struct {
+	SdkInput dynamodb.TransactWriteItemsInput
+}
+
+func (input TransactWriteItemsInputTransformInput) Validate() error {
+
+	return nil
+}
+
+type TransactWriteItemsInputTransformOutput struct {
+	TransformedInput dynamodb.TransactWriteItemsInput
+}
+
+func (input TransactWriteItemsInputTransformOutput) Validate() error {
+
+	return nil
+}
+
+type TransactWriteItemsOutputTransformInput struct {
+	OriginalInput dynamodb.TransactWriteItemsInput
+
+	SdkOutput dynamodb.TransactWriteItemsOutput
+}
+
+func (input TransactWriteItemsOutputTransformInput) Validate() error {
+
+	return nil
+}
+
+type AwsCryptographicMaterialProvidersReference struct {
+}
+
+func (input AwsCryptographicMaterialProvidersReference) Validate() error {
+
+	return nil
+}
+
+type DynamoDbEncryptionReference struct {
+}
+
+func (input DynamoDbEncryptionReference) Validate() error {
+
+	return nil
+}
+
+type DynamoDbItemEncryptorReference struct {
+}
+
+func (input DynamoDbItemEncryptorReference) Validate() error {
+
+	return nil
+}
+
+type StructuredEncryptionReference struct {
+}
+
+func (input StructuredEncryptionReference) Validate() error {
+
+	return nil
+}
+
+type DynamoDbEncryptionTransformsBaseException interface {
+	// This is a dummy method to allow type assertion since Go empty interfaces
+	// aren't useful for type assertion checks. No concrete class is expected to implement
+	// this method. This is also not exported.
+	interfaceBindingMethod()
+}
diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes/unmodelled_errors.go b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes/unmodelled_errors.go
new file mode 100644
index 000000000..5b0d77454
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes/unmodelled_errors.go
@@ -0,0 +1,26 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes
+
+import (
+	"fmt"
+)
+
+type CollectionOfErrors struct {
+	DynamoDbEncryptionTransformsBaseException
+	ListOfErrors []error
+	Message      string
+}
+
+func (e CollectionOfErrors) Error() string {
+	return fmt.Sprintf("message: %s\n err %v", e.Message, e.ListOfErrors)
+}
+
+type OpaqueError struct {
+	DynamoDbEncryptionTransformsBaseException
+	ErrObject interface{}
+}
+
+func (e OpaqueError) Error() string {
+	return fmt.Sprintf("message: %v", e.ErrObject)
+}
diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated/api_client.go b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated/api_client.go
new file mode 100644
index 000000000..c4aec9a70
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated/api_client.go
@@ -0,0 +1,131 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkstructuredencryptionsmithygenerated
+
+import (
+	"context"
+
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/StructuredEncryption"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes"
+)
+
+type Client struct {
+	DafnyClient AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.IStructuredEncryptionClient
+}
+
+func NewClient(clientConfig awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredEncryptionConfig) (*Client, error) {
+	var dafnyConfig = StructuredEncryptionConfig_ToDafny(clientConfig)
+	var dafny_response = StructuredEncryption.Companion_Default___.StructuredEncryption(dafnyConfig)
+	if dafny_response.Is_Failure() {
+		panic("Client construction failed. This should never happen")
+	}
+	var dafnyClient = dafny_response.Extract().(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.IStructuredEncryptionClient)
+	client := &Client{dafnyClient}
+	return client, nil
+}
+
+func (client *Client) EncryptStructure(ctx context.Context, params awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.EncryptStructureInput) (*awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.EncryptStructureOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptStructureInput = EncryptStructureInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.EncryptStructure(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = EncryptStructureOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptStructureOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) DecryptStructure(ctx context.Context, params awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.DecryptStructureInput) (*awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.DecryptStructureOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptStructureInput = DecryptStructureInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.DecryptStructure(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = DecryptStructureOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptStructureOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) EncryptPathStructure(ctx context.Context, params awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.EncryptPathStructureInput) (*awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.EncryptPathStructureOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptPathStructureInput = EncryptPathStructureInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.EncryptPathStructure(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = EncryptPathStructureOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptPathStructureOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) DecryptPathStructure(ctx context.Context, params awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.DecryptPathStructureInput) (*awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.DecryptPathStructureOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptPathStructureInput = DecryptPathStructureInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.DecryptPathStructure(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = DecryptPathStructureOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptPathStructureOutput))
+	return &native_response, nil
+
+}
+
+func (client *Client) ResolveAuthActions(ctx context.Context, params awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ResolveAuthActionsInput) (*awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ResolveAuthActionsOutput, error) {
+	err := params.Validate()
+	if err != nil {
+		opaqueErr := awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.OpaqueError{
+			ErrObject: err,
+		}
+		return nil, opaqueErr
+	}
+
+	var dafny_request AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ResolveAuthActionsInput = ResolveAuthActionsInput_ToDafny(params)
+	var dafny_response = client.DafnyClient.ResolveAuthActions(dafny_request)
+
+	if dafny_response.Is_Failure() {
+		err := dafny_response.Dtor_error().(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error)
+		return nil, Error_FromDafny(err)
+	}
+	var native_response = ResolveAuthActionsOutput_FromDafny(dafny_response.Dtor_value().(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ResolveAuthActionsOutput))
+	return &native_response, nil
+
+}
diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated/to_dafny.go b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated/to_dafny.go
new file mode 100644
index 000000000..28db8f6f4
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated/to_dafny.go
@@ -0,0 +1,846 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkstructuredencryptionsmithygenerated
+
+import (
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/awscryptographyprimitivessmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/awscryptographyprimitivessmithygeneratedtypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes"
+	"github.com/dafny-lang/DafnyRuntimeGo/v4/dafny"
+)
+
+func DecryptPathStructureInput_ToDafny(nativeInput awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.DecryptPathStructureInput) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptPathStructureInput {
+
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptPathStructureInput {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_DecryptPathStructureInput_.Create_DecryptPathStructureInput_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_tableName_ToDafny(nativeInput.TableName), Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_encryptedStructure_ToDafny(nativeInput.EncryptedStructure), awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsManager_ToDafny(nativeInput.Cmm), Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_encryptionContext_ToDafny(nativeInput.EncryptionContext))
+	}()
+
+}
+
+func DecryptPathStructureOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.DecryptPathStructureOutput) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptPathStructureOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptPathStructureOutput {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_DecryptPathStructureOutput_.Create_DecryptPathStructureOutput_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureOutput_plaintextStructure_ToDafny(nativeOutput.PlaintextStructure), Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureOutput_parsedHeader_ToDafny(nativeOutput.ParsedHeader))
+	}()
+
+}
+
+func DecryptStructureInput_ToDafny(nativeInput awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.DecryptStructureInput) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptStructureInput {
+
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptStructureInput {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_DecryptStructureInput_.Create_DecryptStructureInput_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_tableName_ToDafny(nativeInput.TableName), Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_encryptedStructure_ToDafny(nativeInput.EncryptedStructure), Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_authenticateSchema_ToDafny(nativeInput.AuthenticateSchema), awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsManager_ToDafny(nativeInput.Cmm), Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_encryptionContext_ToDafny(nativeInput.EncryptionContext))
+	}()
+
+}
+
+func DecryptStructureOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.DecryptStructureOutput) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptStructureOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptStructureOutput {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_DecryptStructureOutput_.Create_DecryptStructureOutput_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureOutput_plaintextStructure_ToDafny(nativeOutput.PlaintextStructure), Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureOutput_cryptoSchema_ToDafny(nativeOutput.CryptoSchema), Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureOutput_parsedHeader_ToDafny(nativeOutput.ParsedHeader))
+	}()
+
+}
+
+func EncryptPathStructureInput_ToDafny(nativeInput awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.EncryptPathStructureInput) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptPathStructureInput {
+
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptPathStructureInput {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_EncryptPathStructureInput_.Create_EncryptPathStructureInput_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_tableName_ToDafny(nativeInput.TableName), Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_plaintextStructure_ToDafny(nativeInput.PlaintextStructure), awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsManager_ToDafny(nativeInput.Cmm), Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_algorithmSuiteId_ToDafny(nativeInput.AlgorithmSuiteId), Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_encryptionContext_ToDafny(nativeInput.EncryptionContext))
+	}()
+
+}
+
+func EncryptPathStructureOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.EncryptPathStructureOutput) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptPathStructureOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptPathStructureOutput {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_EncryptPathStructureOutput_.Create_EncryptPathStructureOutput_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureOutput_encryptedStructure_ToDafny(nativeOutput.EncryptedStructure), Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureOutput_parsedHeader_ToDafny(nativeOutput.ParsedHeader))
+	}()
+
+}
+
+func EncryptStructureInput_ToDafny(nativeInput awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.EncryptStructureInput) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptStructureInput {
+
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptStructureInput {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_EncryptStructureInput_.Create_EncryptStructureInput_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_tableName_ToDafny(nativeInput.TableName), Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_plaintextStructure_ToDafny(nativeInput.PlaintextStructure), Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_cryptoSchema_ToDafny(nativeInput.CryptoSchema), awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsManager_ToDafny(nativeInput.Cmm), Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_algorithmSuiteId_ToDafny(nativeInput.AlgorithmSuiteId), Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_encryptionContext_ToDafny(nativeInput.EncryptionContext))
+	}()
+
+}
+
+func EncryptStructureOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.EncryptStructureOutput) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptStructureOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptStructureOutput {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_EncryptStructureOutput_.Create_EncryptStructureOutput_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureOutput_encryptedStructure_ToDafny(nativeOutput.EncryptedStructure), Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureOutput_cryptoSchema_ToDafny(nativeOutput.CryptoSchema), Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureOutput_parsedHeader_ToDafny(nativeOutput.ParsedHeader))
+	}()
+
+}
+
+func ResolveAuthActionsInput_ToDafny(nativeInput awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ResolveAuthActionsInput) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ResolveAuthActionsInput {
+
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ResolveAuthActionsInput {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_ResolveAuthActionsInput_.Create_ResolveAuthActionsInput_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsInput_tableName_ToDafny(nativeInput.TableName), Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsInput_authActions_ToDafny(nativeInput.AuthActions), Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsInput_headerBytes_ToDafny(nativeInput.HeaderBytes))
+	}()
+
+}
+
+func ResolveAuthActionsOutput_ToDafny(nativeOutput awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ResolveAuthActionsOutput) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ResolveAuthActionsOutput {
+
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ResolveAuthActionsOutput {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_ResolveAuthActionsOutput_.Create_ResolveAuthActionsOutput_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsOutput_cryptoActions_ToDafny(nativeOutput.CryptoActions))
+	}()
+
+}
+
+func StructuredEncryptionException_ToDafny(nativeInput awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredEncryptionException) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error {
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_Error_.Create_StructuredEncryptionException_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredEncryptionException_message_ToDafny(nativeInput.Message))
+	}()
+
+}
+
+func CollectionOfErrors_Input_ToDafny(nativeInput awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CollectionOfErrors) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error {
+	var e []interface{}
+	for _, i2 := range nativeInput.ListOfErrors {
+		e = append(e, Error_ToDafny(i2))
+	}
+	return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_Error_.Create_CollectionOfErrors_(dafny.SeqOf(e...), func() dafny.Sequence {
+		res, err := UTF8.DecodeFromNativeGoByteArray([]byte(nativeInput.Message))
+		if err != nil {
+			panic("invalid utf8 input provided")
+		}
+		return res
+	}())
+}
+func OpaqueError_Input_ToDafny(nativeInput awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.OpaqueError) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error {
+	return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_Error_.Create_Opaque_(nativeInput.ErrObject)
+}
+
+func Error_ToDafny(err error) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error {
+	switch err.(type) {
+	// Service Errors
+	case awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredEncryptionException:
+		return StructuredEncryptionException_ToDafny(err.(awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredEncryptionException))
+
+	//DependentErrors
+	case awscryptographyprimitivessmithygeneratedtypes.AwsCryptographicPrimitivesBaseException:
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(awscryptographyprimitivessmithygenerated.Error_ToDafny(err))
+
+	case awscryptographymaterialproviderssmithygeneratedtypes.AwsCryptographicMaterialProvidersBaseException:
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_Error_.Create_AwsCryptographyMaterialProviders_(awscryptographymaterialproviderssmithygenerated.Error_ToDafny(err))
+
+	//Unmodelled Errors
+	case awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CollectionOfErrors:
+		return CollectionOfErrors_Input_ToDafny(err.(awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CollectionOfErrors))
+
+	default:
+		error, ok := err.(awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.OpaqueError)
+		if !ok {
+			panic("Error is not an OpaqueError")
+		}
+		return OpaqueError_Input_ToDafny(error)
+	}
+}
+
+func StructuredEncryptionConfig_ToDafny(nativeInput awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredEncryptionConfig) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredEncryptionConfig {
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredEncryptionConfig {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_StructuredEncryptionConfig_.Create_StructuredEncryptionConfig_()
+	}()
+
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_tableName_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_encryptedStructure_ToDafny(input []awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthItem) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return dafny.SeqOf(fieldValue...)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthList_member_ToDafny(input awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthItem) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem {
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_AuthItem_.Create_AuthItem_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthItem_key_ToDafny(input.Key), Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthItem_data_ToDafny(input.Data), Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthItem_action_ToDafny(input.Action))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthItem_key_ToDafny(input []awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.PathSegment) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_structuredEncryption_Path_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return dafny.SeqOf(fieldValue...)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_Path_member_ToDafny(input awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.PathSegment) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.PathSegment {
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.PathSegment {
+
+		switch input.(type) {
+		case *awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.PathSegmentMembermember:
+			var inputToConversion = Aws_cryptography_dbEncryptionSdk_structuredEncryption_PathSegment_member_ToDafny(input.(*awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.PathSegmentMembermember).Value)
+			return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CompanionStruct_PathSegment_{}.Create_member_(inputToConversion.UnwrapOr(nil).(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructureSegment))
+
+		default:
+			panic("Unhandled union type")
+		}
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_PathSegment_member_ToDafny(input awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructureSegment) Wrappers.Option {
+	return func() Wrappers.Option {
+
+		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_StructureSegment_.Create_StructureSegment_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructureSegment_key_ToDafny(input.Key)))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructureSegment_key_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthItem_data_ToDafny(input awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal {
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_StructuredDataTerminal_.Create_StructuredDataTerminal_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataTerminal_value_ToDafny(input.Value), Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataTerminal_typeId_ToDafny(input.TypeId))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataTerminal_value_ToDafny(input []byte) dafny.Sequence {
+	return func() dafny.Sequence {
+		v := make([]interface{}, 0, len(input))
+		if input == nil {
+			return nil
+		}
+		for _, e := range input {
+			v = append(v, e)
+		}
+		return dafny.SeqFromArray(v, false)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataTerminal_typeId_ToDafny(input []byte) dafny.Sequence {
+	return func() dafny.Sequence {
+		v := make([]interface{}, 0, len(input))
+		if input == nil {
+			return nil
+		}
+		for _, e := range input {
+			v = append(v, e)
+		}
+		return dafny.SeqFromArray(v, false)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthItem_action_ToDafny(input awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthenticateAction) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthenticateAction {
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthenticateAction {
+
+		var index int
+		for _, enumVal := range input.Values() {
+			index++
+			if enumVal == input {
+				break
+			}
+			if index == len(input.Values()) {
+				panic("Input value did not found in enum values")
+			}
+
+		}
+		var enum interface{}
+		for allEnums, i := dafny.Iterate(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CompanionStruct_AuthenticateAction_{}.AllSingletonConstructors()), 0; i < index; i++ {
+			var ok bool
+			enum, ok = allEnums()
+			if !ok {
+				break
+			}
+		}
+		return enum.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthenticateAction)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_encryptionContext_ToDafny(input map[string]string) Wrappers.Option {
+	return func() Wrappers.Option {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_key_ToDafny(key), awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_value_ToDafny(val))
+		}
+		return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureOutput_plaintextStructure_ToDafny(input []awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoItem) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return dafny.SeqOf(fieldValue...)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoList_member_ToDafny(input awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoItem) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem {
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_CryptoItem_.Create_CryptoItem_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoItem_key_ToDafny(input.Key), Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoItem_data_ToDafny(input.Data), Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoItem_action_ToDafny(input.Action))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoItem_key_ToDafny(input []awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.PathSegment) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_structuredEncryption_Path_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return dafny.SeqOf(fieldValue...)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoItem_data_ToDafny(input awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal {
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_StructuredDataTerminal_.Create_StructuredDataTerminal_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataTerminal_value_ToDafny(input.Value), Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataTerminal_typeId_ToDafny(input.TypeId))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoItem_action_ToDafny(input awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction {
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction {
+
+		var index int
+		for _, enumVal := range input.Values() {
+			index++
+			if enumVal == input {
+				break
+			}
+			if index == len(input.Values()) {
+				panic("Input value did not found in enum values")
+			}
+
+		}
+		var enum interface{}
+		for allEnums, i := dafny.Iterate(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CompanionStruct_CryptoAction_{}.AllSingletonConstructors()), 0; i < index; i++ {
+			var ok bool
+			enum, ok = allEnums()
+			if !ok {
+				break
+			}
+		}
+		return enum.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureOutput_parsedHeader_ToDafny(input awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ParsedHeader) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader {
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_ParsedHeader_.Create_ParsedHeader_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_algorithmSuiteId_ToDafny(input.AlgorithmSuiteId), Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptedDataKeys_ToDafny(input.EncryptedDataKeys), Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_storedEncryptionContext_ToDafny(input.StoredEncryptionContext), Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptionContext_ToDafny(input.EncryptionContext))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_algorithmSuiteId_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId) AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId {
+	return func() AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId {
+
+		var index int
+		for _, enumVal := range input.Values() {
+			index++
+			if enumVal == input {
+				break
+			}
+			if index == len(input.Values()) {
+				panic("Input value did not found in enum values")
+			}
+
+		}
+		var enum interface{}
+		for allEnums, i := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_DBEAlgorithmSuiteId_{}.AllSingletonConstructors()), 0; i < index; i++ {
+			var ok bool
+			enum, ok = allEnums()
+			if !ok {
+				break
+			}
+		}
+		return enum.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptedDataKeys_ToDafny(input []awscryptographymaterialproviderssmithygeneratedtypes.EncryptedDataKey) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptedDataKeyList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return dafny.SeqOf(fieldValue...)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_storedEncryptionContext_ToDafny(input map[string]string) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_key_ToDafny(key), awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptionContext_ToDafny(input map[string]string) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_key_ToDafny(key), awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_tableName_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_encryptedStructure_ToDafny(input map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_key_ToDafny(key), Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_key_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_value_ToDafny(input awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal {
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_StructuredDataTerminal_.Create_StructuredDataTerminal_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataTerminal_value_ToDafny(input.Value), Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataTerminal_typeId_ToDafny(input.TypeId))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_authenticateSchema_ToDafny(input map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthenticateAction) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthenticateSchemaMap_key_ToDafny(key), Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthenticateSchemaMap_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthenticateSchemaMap_key_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthenticateSchemaMap_value_ToDafny(input awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthenticateAction) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthenticateAction {
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthenticateAction {
+
+		var index int
+		for _, enumVal := range input.Values() {
+			index++
+			if enumVal == input {
+				break
+			}
+			if index == len(input.Values()) {
+				panic("Input value did not found in enum values")
+			}
+
+		}
+		var enum interface{}
+		for allEnums, i := dafny.Iterate(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CompanionStruct_AuthenticateAction_{}.AllSingletonConstructors()), 0; i < index; i++ {
+			var ok bool
+			enum, ok = allEnums()
+			if !ok {
+				break
+			}
+		}
+		return enum.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthenticateAction)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_encryptionContext_ToDafny(input map[string]string) Wrappers.Option {
+	return func() Wrappers.Option {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_key_ToDafny(key), awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_value_ToDafny(val))
+		}
+		return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureOutput_plaintextStructure_ToDafny(input map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_key_ToDafny(key), Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureOutput_cryptoSchema_ToDafny(input map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoSchemaMap_key_ToDafny(key), Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoSchemaMap_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoSchemaMap_key_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoSchemaMap_value_ToDafny(input awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction {
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction {
+
+		var index int
+		for _, enumVal := range input.Values() {
+			index++
+			if enumVal == input {
+				break
+			}
+			if index == len(input.Values()) {
+				panic("Input value did not found in enum values")
+			}
+
+		}
+		var enum interface{}
+		for allEnums, i := dafny.Iterate(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CompanionStruct_CryptoAction_{}.AllSingletonConstructors()), 0; i < index; i++ {
+			var ok bool
+			enum, ok = allEnums()
+			if !ok {
+				break
+			}
+		}
+		return enum.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureOutput_parsedHeader_ToDafny(input awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ParsedHeader) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader {
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_ParsedHeader_.Create_ParsedHeader_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_algorithmSuiteId_ToDafny(input.AlgorithmSuiteId), Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptedDataKeys_ToDafny(input.EncryptedDataKeys), Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_storedEncryptionContext_ToDafny(input.StoredEncryptionContext), Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptionContext_ToDafny(input.EncryptionContext))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_tableName_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_plaintextStructure_ToDafny(input []awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoItem) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return dafny.SeqOf(fieldValue...)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_algorithmSuiteId_ToDafny(input *awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		var index int
+		for _, enumVal := range input.Values() {
+			index++
+			if enumVal == *input {
+				break
+			}
+
+		}
+		var enum interface{}
+		for allEnums, i := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_DBEAlgorithmSuiteId_{}.AllSingletonConstructors()), 0; i < index; i++ {
+			var ok bool
+			enum, ok = allEnums()
+			if !ok {
+				break
+			}
+		}
+		return Wrappers.Companion_Option_.Create_Some_(enum.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_encryptionContext_ToDafny(input map[string]string) Wrappers.Option {
+	return func() Wrappers.Option {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_key_ToDafny(key), awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_value_ToDafny(val))
+		}
+		return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureOutput_encryptedStructure_ToDafny(input []awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoItem) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return dafny.SeqOf(fieldValue...)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureOutput_parsedHeader_ToDafny(input awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ParsedHeader) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader {
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_ParsedHeader_.Create_ParsedHeader_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_algorithmSuiteId_ToDafny(input.AlgorithmSuiteId), Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptedDataKeys_ToDafny(input.EncryptedDataKeys), Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_storedEncryptionContext_ToDafny(input.StoredEncryptionContext), Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptionContext_ToDafny(input.EncryptionContext))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_tableName_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_plaintextStructure_ToDafny(input map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_key_ToDafny(key), Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_cryptoSchema_ToDafny(input map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoSchemaMap_key_ToDafny(key), Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoSchemaMap_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_algorithmSuiteId_ToDafny(input *awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId) Wrappers.Option {
+	return func() Wrappers.Option {
+		if input == nil {
+			return Wrappers.Companion_Option_.Create_None_()
+		}
+		var index int
+		for _, enumVal := range input.Values() {
+			index++
+			if enumVal == *input {
+				break
+			}
+
+		}
+		var enum interface{}
+		for allEnums, i := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_DBEAlgorithmSuiteId_{}.AllSingletonConstructors()), 0; i < index; i++ {
+			var ok bool
+			enum, ok = allEnums()
+			if !ok {
+				break
+			}
+		}
+		return Wrappers.Companion_Option_.Create_Some_(enum.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_encryptionContext_ToDafny(input map[string]string) Wrappers.Option {
+	return func() Wrappers.Option {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_key_ToDafny(key), awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_value_ToDafny(val))
+		}
+		return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap())
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureOutput_encryptedStructure_ToDafny(input map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_key_ToDafny(key), Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureOutput_cryptoSchema_ToDafny(input map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction) dafny.Map {
+	return func() dafny.Map {
+		fieldValue := dafny.NewMapBuilder()
+		for key, val := range input {
+			fieldValue.Add(Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoSchemaMap_key_ToDafny(key), Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoSchemaMap_value_ToDafny(val))
+		}
+		return fieldValue.ToMap()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureOutput_parsedHeader_ToDafny(input awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ParsedHeader) AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader {
+	return func() AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader {
+
+		return AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Companion_ParsedHeader_.Create_ParsedHeader_(Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_algorithmSuiteId_ToDafny(input.AlgorithmSuiteId), Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptedDataKeys_ToDafny(input.EncryptedDataKeys), Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_storedEncryptionContext_ToDafny(input.StoredEncryptionContext), Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptionContext_ToDafny(input.EncryptionContext))
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsInput_tableName_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsInput_authActions_ToDafny(input []awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthItem) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return dafny.SeqOf(fieldValue...)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsInput_headerBytes_ToDafny(input []byte) dafny.Sequence {
+	return func() dafny.Sequence {
+		v := make([]interface{}, 0, len(input))
+		if input == nil {
+			return nil
+		}
+		for _, e := range input {
+			v = append(v, e)
+		}
+		return dafny.SeqFromArray(v, false)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsOutput_cryptoActions_ToDafny(input []awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoItem) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		var fieldValue []interface{} = make([]interface{}, 0, len(input))
+		for _, val := range input {
+			element := Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoList_member_ToDafny(val)
+			fieldValue = append(fieldValue, element)
+		}
+		return dafny.SeqOf(fieldValue...)
+	}()
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredEncryptionException_message_ToDafny(input string) dafny.Sequence {
+	return func() dafny.Sequence {
+
+		return func() dafny.Sequence {
+			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
+			if err != nil {
+				panic("invalid utf8 input provided")
+			}
+			return res
+		}()
+	}()
+}
diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated/to_native.go b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated/to_native.go
new file mode 100644
index 000000000..cf49457e6
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygenerated/to_native.go
@@ -0,0 +1,808 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkstructuredencryptionsmithygenerated
+
+import (
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/awscryptographyprimitivessmithygenerated"
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes"
+	"github.com/aws/aws-database-encryption-sdk-dynamodb/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes"
+	"github.com/dafny-lang/DafnyRuntimeGo/v4/dafny"
+)
+
+func DecryptPathStructureInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptPathStructureInput) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.DecryptPathStructureInput {
+
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.DecryptPathStructureInput{TableName: Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_tableName_FromDafny(dafnyInput.Dtor_tableName()),
+		EncryptedStructure: Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_encryptedStructure_FromDafny(dafnyInput.Dtor_encryptedStructure()),
+		Cmm:                awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsManager_FromDafny(dafnyInput.Dtor_cmm()),
+		EncryptionContext:  Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_encryptionContext_FromDafny(dafnyInput.Dtor_encryptionContext().UnwrapOr(nil)),
+	}
+
+}
+
+func DecryptPathStructureOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptPathStructureOutput) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.DecryptPathStructureOutput {
+
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.DecryptPathStructureOutput{PlaintextStructure: Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureOutput_plaintextStructure_FromDafny(dafnyOutput.Dtor_plaintextStructure()),
+		ParsedHeader: Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureOutput_parsedHeader_FromDafny(dafnyOutput.Dtor_parsedHeader()),
+	}
+
+}
+
+func DecryptStructureInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptStructureInput) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.DecryptStructureInput {
+
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.DecryptStructureInput{TableName: Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_tableName_FromDafny(dafnyInput.Dtor_tableName()),
+		EncryptedStructure: Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_encryptedStructure_FromDafny(dafnyInput.Dtor_encryptedStructure()),
+		AuthenticateSchema: Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_authenticateSchema_FromDafny(dafnyInput.Dtor_authenticateSchema()),
+		Cmm:                awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsManager_FromDafny(dafnyInput.Dtor_cmm()),
+		EncryptionContext:  Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_encryptionContext_FromDafny(dafnyInput.Dtor_encryptionContext().UnwrapOr(nil)),
+	}
+
+}
+
+func DecryptStructureOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.DecryptStructureOutput) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.DecryptStructureOutput {
+
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.DecryptStructureOutput{PlaintextStructure: Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureOutput_plaintextStructure_FromDafny(dafnyOutput.Dtor_plaintextStructure()),
+		CryptoSchema: Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureOutput_cryptoSchema_FromDafny(dafnyOutput.Dtor_cryptoSchema()),
+		ParsedHeader: Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureOutput_parsedHeader_FromDafny(dafnyOutput.Dtor_parsedHeader()),
+	}
+
+}
+
+func EncryptPathStructureInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptPathStructureInput) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.EncryptPathStructureInput {
+
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.EncryptPathStructureInput{TableName: Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_tableName_FromDafny(dafnyInput.Dtor_tableName()),
+		PlaintextStructure: Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_plaintextStructure_FromDafny(dafnyInput.Dtor_plaintextStructure()),
+		Cmm:                awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsManager_FromDafny(dafnyInput.Dtor_cmm()),
+		AlgorithmSuiteId:   Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_algorithmSuiteId_FromDafny(dafnyInput.Dtor_algorithmSuiteId().UnwrapOr(nil)),
+		EncryptionContext:  Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_encryptionContext_FromDafny(dafnyInput.Dtor_encryptionContext().UnwrapOr(nil)),
+	}
+
+}
+
+func EncryptPathStructureOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptPathStructureOutput) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.EncryptPathStructureOutput {
+
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.EncryptPathStructureOutput{EncryptedStructure: Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureOutput_encryptedStructure_FromDafny(dafnyOutput.Dtor_encryptedStructure()),
+		ParsedHeader: Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureOutput_parsedHeader_FromDafny(dafnyOutput.Dtor_parsedHeader()),
+	}
+
+}
+
+func EncryptStructureInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptStructureInput) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.EncryptStructureInput {
+
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.EncryptStructureInput{TableName: Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_tableName_FromDafny(dafnyInput.Dtor_tableName()),
+		PlaintextStructure: Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_plaintextStructure_FromDafny(dafnyInput.Dtor_plaintextStructure()),
+		CryptoSchema:       Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_cryptoSchema_FromDafny(dafnyInput.Dtor_cryptoSchema()),
+		Cmm:                awscryptographymaterialproviderssmithygenerated.CryptographicMaterialsManager_FromDafny(dafnyInput.Dtor_cmm()),
+		AlgorithmSuiteId:   Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_algorithmSuiteId_FromDafny(dafnyInput.Dtor_algorithmSuiteId().UnwrapOr(nil)),
+		EncryptionContext:  Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_encryptionContext_FromDafny(dafnyInput.Dtor_encryptionContext().UnwrapOr(nil)),
+	}
+
+}
+
+func EncryptStructureOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.EncryptStructureOutput) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.EncryptStructureOutput {
+
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.EncryptStructureOutput{EncryptedStructure: Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureOutput_encryptedStructure_FromDafny(dafnyOutput.Dtor_encryptedStructure()),
+		CryptoSchema: Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureOutput_cryptoSchema_FromDafny(dafnyOutput.Dtor_cryptoSchema()),
+		ParsedHeader: Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureOutput_parsedHeader_FromDafny(dafnyOutput.Dtor_parsedHeader()),
+	}
+
+}
+
+func ResolveAuthActionsInput_FromDafny(dafnyInput AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ResolveAuthActionsInput) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ResolveAuthActionsInput {
+
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ResolveAuthActionsInput{TableName: Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsInput_tableName_FromDafny(dafnyInput.Dtor_tableName()),
+		AuthActions: Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsInput_authActions_FromDafny(dafnyInput.Dtor_authActions()),
+		HeaderBytes: Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsInput_headerBytes_FromDafny(dafnyInput.Dtor_headerBytes()),
+	}
+
+}
+
+func ResolveAuthActionsOutput_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ResolveAuthActionsOutput) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ResolveAuthActionsOutput {
+
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ResolveAuthActionsOutput{CryptoActions: Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsOutput_cryptoActions_FromDafny(dafnyOutput.Dtor_cryptoActions())}
+
+}
+
+func StructuredEncryptionException_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredEncryptionException {
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredEncryptionException{Message: Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredEncryptionException_message_FromDafny(dafnyOutput.Dtor_message())}
+
+}
+
+func CollectionOfErrors_Output_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CollectionOfErrors {
+	listOfErrors := dafnyOutput.Dtor_list()
+	message := dafnyOutput.Dtor_message()
+	t := awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CollectionOfErrors{}
+	for i := dafny.Iterate(listOfErrors); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		err := val.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error)
+		t.ListOfErrors = append(t.ListOfErrors, Error_FromDafny(err))
+
+	}
+	t.Message = func() string {
+		a := UTF8.Encode(message.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+		return s
+	}()
+	return t
+}
+func OpaqueError_Output_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.OpaqueError {
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.OpaqueError{
+		ErrObject: dafnyOutput.Dtor_obj(),
+	}
+}
+
+func Error_FromDafny(err AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.Error) error {
+	// Service Errors
+	if err.Is_StructuredEncryptionException() {
+		return StructuredEncryptionException_FromDafny(err)
+	}
+
+	//DependentErrors
+	if err.Is_AwsCryptographyPrimitives() {
+		return awscryptographyprimitivessmithygenerated.Error_FromDafny(err.Dtor_AwsCryptographyPrimitives())
+	}
+
+	if err.Is_AwsCryptographyMaterialProviders() {
+		return awscryptographymaterialproviderssmithygenerated.Error_FromDafny(err.Dtor_AwsCryptographyMaterialProviders())
+	}
+
+	//Unmodelled Errors
+	if err.Is_CollectionOfErrors() {
+		return CollectionOfErrors_Output_FromDafny(err)
+	}
+
+	return OpaqueError_Output_FromDafny(err)
+}
+
+func StructuredEncryptionConfig_FromDafny(dafnyOutput AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredEncryptionConfig) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredEncryptionConfig {
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredEncryptionConfig{}
+
+}
+
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_tableName_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_encryptedStructure_FromDafny(input interface{}) []awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthItem {
+	fieldValue := make([]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthItem, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthList_member_FromDafny(input interface{}) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthItem {
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthItem{Key: Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthItem_key_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem).Dtor_key()),
+		Data:   Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthItem_data_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem).Dtor_data()),
+		Action: Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthItem_action_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthItem).Dtor_action()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthItem_key_FromDafny(input interface{}) []awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.PathSegment {
+	fieldValue := make([]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.PathSegment, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_structuredEncryption_Path_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_Path_member_FromDafny(input interface{}) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.PathSegment {
+	var union awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.PathSegment
+
+	if (input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.PathSegment)).Is_member() {
+
+		union = &awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.PathSegmentMembermember{
+			Value: (Aws_cryptography_dbEncryptionSdk_structuredEncryption_PathSegment_member_FromDafny((input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.PathSegment)).Dtor_member())),
+		}
+	}
+
+	return union
+
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_PathSegment_member_FromDafny(input interface{}) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructureSegment {
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructureSegment{Key: Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructureSegment_key_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructureSegment).Dtor_key())}
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructureSegment_key_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthItem_data_FromDafny(input interface{}) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal {
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal{Value: Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataTerminal_value_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal).Dtor_value()),
+		TypeId: Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataTerminal_typeId_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal).Dtor_typeId()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataTerminal_value_FromDafny(input interface{}) []byte {
+	return func() []byte {
+		if input == nil {
+			return nil
+		}
+		a := input.(dafny.Sequence).ToArray().(dafny.GoNativeArray)
+		b := make([]byte, 0, a.Length())
+		for i := uint32(0); i < a.Length(); i++ {
+			b = append(b, a.Select(i).(byte))
+		}
+		return b
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataTerminal_typeId_FromDafny(input interface{}) []byte {
+	return func() []byte {
+		if input == nil {
+			return nil
+		}
+		a := input.(dafny.Sequence).ToArray().(dafny.GoNativeArray)
+		b := make([]byte, 0, a.Length())
+		for i := uint32(0); i < a.Length(); i++ {
+			b = append(b, a.Select(i).(byte))
+		}
+		return b
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthItem_action_FromDafny(input interface{}) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthenticateAction {
+	return func() awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthenticateAction {
+		var u awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthenticateAction
+		inputEnum := input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthenticateAction)
+		index := -1
+		for allEnums := dafny.Iterate(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CompanionStruct_AuthenticateAction_{}.AllSingletonConstructors()); ; {
+			enum, ok := allEnums()
+			if ok {
+				index++
+				if enum.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthenticateAction).Equals(inputEnum) {
+					break
+				}
+			}
+		}
+
+		return u.Values()[index]
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_encryptionContext_FromDafny(input interface{}) map[string]string {
+	var m map[string]string = make(map[string]string)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureOutput_plaintextStructure_FromDafny(input interface{}) []awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoItem {
+	fieldValue := make([]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoItem, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoList_member_FromDafny(input interface{}) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoItem {
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoItem{Key: Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoItem_key_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem).Dtor_key()),
+		Data:   Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoItem_data_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem).Dtor_data()),
+		Action: Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoItem_action_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoItem).Dtor_action()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoItem_key_FromDafny(input interface{}) []awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.PathSegment {
+	fieldValue := make([]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.PathSegment, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_structuredEncryption_Path_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoItem_data_FromDafny(input interface{}) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal {
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal{Value: Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataTerminal_value_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal).Dtor_value()),
+		TypeId: Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataTerminal_typeId_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal).Dtor_typeId()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoItem_action_FromDafny(input interface{}) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction {
+	return func() awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction {
+		var u awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction
+		inputEnum := input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction)
+		index := -1
+		for allEnums := dafny.Iterate(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CompanionStruct_CryptoAction_{}.AllSingletonConstructors()); ; {
+			enum, ok := allEnums()
+			if ok {
+				index++
+				if enum.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction).Equals(inputEnum) {
+					break
+				}
+			}
+		}
+
+		return u.Values()[index]
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureOutput_parsedHeader_FromDafny(input interface{}) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ParsedHeader {
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ParsedHeader{AlgorithmSuiteId: Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_algorithmSuiteId_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader).Dtor_algorithmSuiteId()),
+		EncryptedDataKeys:       Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptedDataKeys_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader).Dtor_encryptedDataKeys()),
+		StoredEncryptionContext: Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_storedEncryptionContext_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader).Dtor_storedEncryptionContext()),
+		EncryptionContext:       Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptionContext_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader).Dtor_encryptionContext()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_algorithmSuiteId_FromDafny(input interface{}) awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId {
+	return func() awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId {
+		var u awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId
+		inputEnum := input.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId)
+		index := -1
+		for allEnums := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_DBEAlgorithmSuiteId_{}.AllSingletonConstructors()); ; {
+			enum, ok := allEnums()
+			if ok {
+				index++
+				if enum.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId).Equals(inputEnum) {
+					break
+				}
+			}
+		}
+
+		return u.Values()[index]
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptedDataKeys_FromDafny(input interface{}) []awscryptographymaterialproviderssmithygeneratedtypes.EncryptedDataKey {
+	fieldValue := make([]awscryptographymaterialproviderssmithygeneratedtypes.EncryptedDataKey, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptedDataKeyList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_storedEncryptionContext_FromDafny(input interface{}) map[string]string {
+	var m map[string]string = make(map[string]string)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptionContext_FromDafny(input interface{}) map[string]string {
+	var m map[string]string = make(map[string]string)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_tableName_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_encryptedStructure_FromDafny(input interface{}) map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal {
+	var m map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal = make(map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_key_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_value_FromDafny(input interface{}) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal {
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal{Value: Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataTerminal_value_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal).Dtor_value()),
+		TypeId: Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataTerminal_typeId_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.StructuredDataTerminal).Dtor_typeId()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_authenticateSchema_FromDafny(input interface{}) map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthenticateAction {
+	var m map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthenticateAction = make(map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthenticateAction)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthenticateSchemaMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthenticateSchemaMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthenticateSchemaMap_key_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthenticateSchemaMap_value_FromDafny(input interface{}) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthenticateAction {
+	return func() awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthenticateAction {
+		var u awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthenticateAction
+		inputEnum := input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthenticateAction)
+		index := -1
+		for allEnums := dafny.Iterate(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CompanionStruct_AuthenticateAction_{}.AllSingletonConstructors()); ; {
+			enum, ok := allEnums()
+			if ok {
+				index++
+				if enum.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.AuthenticateAction).Equals(inputEnum) {
+					break
+				}
+			}
+		}
+
+		return u.Values()[index]
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_encryptionContext_FromDafny(input interface{}) map[string]string {
+	var m map[string]string = make(map[string]string)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureOutput_plaintextStructure_FromDafny(input interface{}) map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal {
+	var m map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal = make(map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureOutput_cryptoSchema_FromDafny(input interface{}) map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction {
+	var m map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction = make(map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoSchemaMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoSchemaMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoSchemaMap_key_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoSchemaMap_value_FromDafny(input interface{}) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction {
+	return func() awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction {
+		var u awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction
+		inputEnum := input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction)
+		index := -1
+		for allEnums := dafny.Iterate(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CompanionStruct_CryptoAction_{}.AllSingletonConstructors()); ; {
+			enum, ok := allEnums()
+			if ok {
+				index++
+				if enum.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.CryptoAction).Equals(inputEnum) {
+					break
+				}
+			}
+		}
+
+		return u.Values()[index]
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureOutput_parsedHeader_FromDafny(input interface{}) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ParsedHeader {
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ParsedHeader{AlgorithmSuiteId: Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_algorithmSuiteId_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader).Dtor_algorithmSuiteId()),
+		EncryptedDataKeys:       Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptedDataKeys_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader).Dtor_encryptedDataKeys()),
+		StoredEncryptionContext: Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_storedEncryptionContext_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader).Dtor_storedEncryptionContext()),
+		EncryptionContext:       Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptionContext_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader).Dtor_encryptionContext()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_tableName_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_plaintextStructure_FromDafny(input interface{}) []awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoItem {
+	fieldValue := make([]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoItem, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_algorithmSuiteId_FromDafny(input interface{}) *awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId {
+	return func() *awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId {
+		var u awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId
+		if input == nil {
+			return nil
+		}
+		inputEnum := input.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId)
+		index := -1
+		for allEnums := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_DBEAlgorithmSuiteId_{}.AllSingletonConstructors()); ; {
+			enum, ok := allEnums()
+			if ok {
+				index++
+				if enum.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId).Equals(inputEnum) {
+					break
+				}
+			}
+		}
+
+		return &u.Values()[index]
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_encryptionContext_FromDafny(input interface{}) map[string]string {
+	var m map[string]string = make(map[string]string)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureOutput_encryptedStructure_FromDafny(input interface{}) []awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoItem {
+	fieldValue := make([]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoItem, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureOutput_parsedHeader_FromDafny(input interface{}) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ParsedHeader {
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ParsedHeader{AlgorithmSuiteId: Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_algorithmSuiteId_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader).Dtor_algorithmSuiteId()),
+		EncryptedDataKeys:       Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptedDataKeys_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader).Dtor_encryptedDataKeys()),
+		StoredEncryptionContext: Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_storedEncryptionContext_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader).Dtor_storedEncryptionContext()),
+		EncryptionContext:       Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptionContext_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader).Dtor_encryptionContext()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_tableName_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_plaintextStructure_FromDafny(input interface{}) map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal {
+	var m map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal = make(map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_cryptoSchema_FromDafny(input interface{}) map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction {
+	var m map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction = make(map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoSchemaMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoSchemaMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_algorithmSuiteId_FromDafny(input interface{}) *awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId {
+	return func() *awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId {
+		var u awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId
+		if input == nil {
+			return nil
+		}
+		inputEnum := input.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId)
+		index := -1
+		for allEnums := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_DBEAlgorithmSuiteId_{}.AllSingletonConstructors()); ; {
+			enum, ok := allEnums()
+			if ok {
+				index++
+				if enum.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId).Equals(inputEnum) {
+					break
+				}
+			}
+		}
+
+		return &u.Values()[index]
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_encryptionContext_FromDafny(input interface{}) map[string]string {
+	var m map[string]string = make(map[string]string)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = awscryptographymaterialproviderssmithygenerated.Aws_cryptography_materialProviders_EncryptionContext_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureOutput_encryptedStructure_FromDafny(input interface{}) map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal {
+	var m map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal = make(map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.StructuredDataTerminal)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredDataMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureOutput_cryptoSchema_FromDafny(input interface{}) map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction {
+	var m map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction = make(map[string]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoAction)
+	if input == nil {
+		return nil
+	}
+	for i := dafny.Iterate(input.(dafny.Map).Items()); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		m[Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoSchemaMap_key_FromDafny((*val.(dafny.Tuple).IndexInt(0)))] = Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoSchemaMap_value_FromDafny((*val.(dafny.Tuple).IndexInt(1)))
+	}
+	return m
+
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureOutput_parsedHeader_FromDafny(input interface{}) awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ParsedHeader {
+	return awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.ParsedHeader{AlgorithmSuiteId: Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_algorithmSuiteId_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader).Dtor_algorithmSuiteId()),
+		EncryptedDataKeys:       Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptedDataKeys_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader).Dtor_encryptedDataKeys()),
+		StoredEncryptionContext: Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_storedEncryptionContext_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader).Dtor_storedEncryptionContext()),
+		EncryptionContext:       Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptionContext_FromDafny(input.(AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes.ParsedHeader).Dtor_encryptionContext()),
+	}
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsInput_tableName_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsInput_authActions_FromDafny(input interface{}) []awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthItem {
+	fieldValue := make([]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.AuthItem, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsInput_headerBytes_FromDafny(input interface{}) []byte {
+	return func() []byte {
+		if input == nil {
+			return nil
+		}
+		a := input.(dafny.Sequence).ToArray().(dafny.GoNativeArray)
+		b := make([]byte, 0, a.Length())
+		for i := uint32(0); i < a.Length(); i++ {
+			b = append(b, a.Select(i).(byte))
+		}
+		return b
+	}()
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsOutput_cryptoActions_FromDafny(input interface{}) []awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoItem {
+	fieldValue := make([]awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes.CryptoItem, 0)
+	for i := dafny.Iterate(input.(dafny.Sequence)); ; {
+		val, ok := i()
+		if !ok {
+			break
+		}
+		fieldValue = append(fieldValue, Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoList_member_FromDafny(val))
+	}
+	return fieldValue
+}
+func Aws_cryptography_dbEncryptionSdk_structuredEncryption_StructuredEncryptionException_message_FromDafny(input interface{}) string {
+	return func() string {
+
+		a := UTF8.Encode(input.(dafny.Sequence)).Dtor_value()
+		s := string(dafny.ToByteArray(a.(dafny.Sequence)))
+
+		return s
+	}()
+}
diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes/enums.go b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes/enums.go
new file mode 100644
index 000000000..bf38d1e83
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes/enums.go
@@ -0,0 +1,35 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes
+
+type AuthenticateAction string
+
+const (
+	AuthenticateActionSign      AuthenticateAction = "SIGN"
+	AuthenticateActionDoNotSign AuthenticateAction = "DO_NOT_SIGN"
+)
+
+func (AuthenticateAction) Values() []AuthenticateAction {
+	return []AuthenticateAction{
+		"SIGN",
+		"DO_NOT_SIGN",
+	}
+}
+
+type CryptoAction string
+
+const (
+	CryptoActionEncryptAndSign                    CryptoAction = "ENCRYPT_AND_SIGN"
+	CryptoActionSignAndIncludeInEncryptionContext CryptoAction = "SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT"
+	CryptoActionSignOnly                          CryptoAction = "SIGN_ONLY"
+	CryptoActionDoNothing                         CryptoAction = "DO_NOTHING"
+)
+
+func (CryptoAction) Values() []CryptoAction {
+	return []CryptoAction{
+		"ENCRYPT_AND_SIGN",
+		"SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT",
+		"SIGN_ONLY",
+		"DO_NOTHING",
+	}
+}
diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes/errors.go b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes/errors.go
new file mode 100644
index 000000000..ba37c71a0
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes/errors.go
@@ -0,0 +1,17 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes
+
+import (
+	"fmt"
+)
+
+type StructuredEncryptionException struct {
+	StructuredEncryptionBaseException
+	Message           string
+	ErrorCodeOverride *string
+}
+
+func (e StructuredEncryptionException) Error() string {
+	return fmt.Sprintf("%s: %s", e.ErrorCodeOverride, e.Message)
+}
diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes/types.go b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes/types.go
new file mode 100644
index 000000000..2401b2204
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes/types.go
@@ -0,0 +1,615 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes
+
+import (
+	"fmt"
+	"unicode/utf8"
+
+	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes"
+)
+
+type StructuredDataTerminal struct {
+	TypeId []byte
+
+	Value []byte
+}
+
+func (input StructuredDataTerminal) Validate() error {
+	if len(input.TypeId) < 2 {
+		return fmt.Errorf("TerminalTypeId has a minimum length of 2 but has the length of %d.", len(input.TypeId))
+	}
+	if len(input.TypeId) > 2 {
+		return fmt.Errorf("TerminalTypeId has a maximum length of 2 but has the length of %d.", len(input.TypeId))
+	}
+
+	return nil
+}
+
+type StructureSegment struct {
+	Key string
+}
+
+func (input StructureSegment) Validate() error {
+
+	return nil
+}
+
+type AuthItem struct {
+	Action AuthenticateAction
+
+	Data StructuredDataTerminal
+
+	Key []PathSegment
+}
+
+func (input AuthItem) Validate() error {
+	if input.Data.Validate() != nil {
+		return input.Data.Validate()
+	}
+	if input.Key == nil {
+		return fmt.Errorf("input.Key is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthItem_key_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthItem_key_Validate()
+	}
+
+	return nil
+}
+
+func (input AuthItem) Aws_cryptography_dbEncryptionSdk_structuredEncryption_Path_member_Validate(Value PathSegment) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *PathSegmentMembermember:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input AuthItem) Aws_cryptography_dbEncryptionSdk_structuredEncryption_AuthItem_key_Validate() error {
+	for _, item := range input.Key {
+		if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_Path_member_Validate(item) != nil {
+			return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_Path_member_Validate(item)
+		}
+	}
+
+	return nil
+}
+
+type CryptoItem struct {
+	Action CryptoAction
+
+	Data StructuredDataTerminal
+
+	Key []PathSegment
+}
+
+func (input CryptoItem) Validate() error {
+	if input.Data.Validate() != nil {
+		return input.Data.Validate()
+	}
+	if input.Key == nil {
+		return fmt.Errorf("input.Key is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoItem_key_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoItem_key_Validate()
+	}
+
+	return nil
+}
+
+func (input CryptoItem) Aws_cryptography_dbEncryptionSdk_structuredEncryption_Path_member_Validate(Value PathSegment) error {
+	if Value == nil {
+		return nil
+	}
+	switch unionType := Value.(type) {
+	case *PathSegmentMembermember:
+		if unionType.Value.Validate() != nil {
+			return unionType.Value.Validate()
+		}
+	// Default case should not be reached.
+	default:
+		panic(fmt.Sprintf("Unhandled union type: %T ", unionType))
+	}
+
+	return nil
+}
+func (input CryptoItem) Aws_cryptography_dbEncryptionSdk_structuredEncryption_CryptoItem_key_Validate() error {
+	for _, item := range input.Key {
+		if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_Path_member_Validate(item) != nil {
+			return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_Path_member_Validate(item)
+		}
+	}
+
+	return nil
+}
+
+type DecryptPathStructureInput struct {
+	Cmm awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsManager
+
+	EncryptedStructure []AuthItem
+
+	TableName string
+
+	EncryptionContext map[string]string
+}
+
+func (input DecryptPathStructureInput) Validate() error {
+	if input.EncryptedStructure == nil {
+		return fmt.Errorf("input.EncryptedStructure is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_encryptedStructure_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_encryptedStructure_Validate()
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_encryptionContext_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_encryptionContext_Validate()
+	}
+
+	return nil
+}
+
+func (input DecryptPathStructureInput) Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_encryptedStructure_Validate() error {
+	for _, item := range input.EncryptedStructure {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+func (input DecryptPathStructureInput) Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureInput_encryptionContext_Validate() error {
+	for key, value := range input.EncryptionContext {
+		if !utf8.ValidString(key) {
+			return fmt.Errorf("Invalid UTF bytes %s ", key)
+		}
+		if !utf8.ValidString(value) {
+			return fmt.Errorf("Invalid UTF bytes %s ", value)
+		}
+	}
+
+	return nil
+}
+
+type ParsedHeader struct {
+	AlgorithmSuiteId awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId
+
+	EncryptedDataKeys []awscryptographymaterialproviderssmithygeneratedtypes.EncryptedDataKey
+
+	EncryptionContext map[string]string
+
+	StoredEncryptionContext map[string]string
+}
+
+func (input ParsedHeader) Validate() error {
+	if input.EncryptedDataKeys == nil {
+		return fmt.Errorf("input.EncryptedDataKeys is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptedDataKeys_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptedDataKeys_Validate()
+	}
+	if input.EncryptionContext == nil {
+		return fmt.Errorf("input.EncryptionContext is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptionContext_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptionContext_Validate()
+	}
+	if input.StoredEncryptionContext == nil {
+		return fmt.Errorf("input.StoredEncryptionContext is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_storedEncryptionContext_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_storedEncryptionContext_Validate()
+	}
+
+	return nil
+}
+
+func (input ParsedHeader) Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptedDataKeys_Validate() error {
+	for _, item := range input.EncryptedDataKeys {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+func (input ParsedHeader) Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_encryptionContext_Validate() error {
+	for key, value := range input.EncryptionContext {
+		if !utf8.ValidString(key) {
+			return fmt.Errorf("Invalid UTF bytes %s ", key)
+		}
+		if !utf8.ValidString(value) {
+			return fmt.Errorf("Invalid UTF bytes %s ", value)
+		}
+	}
+
+	return nil
+}
+func (input ParsedHeader) Aws_cryptography_dbEncryptionSdk_structuredEncryption_ParsedHeader_storedEncryptionContext_Validate() error {
+	for key, value := range input.StoredEncryptionContext {
+		if !utf8.ValidString(key) {
+			return fmt.Errorf("Invalid UTF bytes %s ", key)
+		}
+		if !utf8.ValidString(value) {
+			return fmt.Errorf("Invalid UTF bytes %s ", value)
+		}
+	}
+
+	return nil
+}
+
+type DecryptPathStructureOutput struct {
+	ParsedHeader ParsedHeader
+
+	PlaintextStructure []CryptoItem
+}
+
+func (input DecryptPathStructureOutput) Validate() error {
+	if input.ParsedHeader.Validate() != nil {
+		return input.ParsedHeader.Validate()
+	}
+	if input.PlaintextStructure == nil {
+		return fmt.Errorf("input.PlaintextStructure is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureOutput_plaintextStructure_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureOutput_plaintextStructure_Validate()
+	}
+
+	return nil
+}
+
+func (input DecryptPathStructureOutput) Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptPathStructureOutput_plaintextStructure_Validate() error {
+	for _, item := range input.PlaintextStructure {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+
+type DecryptStructureInput struct {
+	AuthenticateSchema map[string]AuthenticateAction
+
+	Cmm awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsManager
+
+	EncryptedStructure map[string]StructuredDataTerminal
+
+	TableName string
+
+	EncryptionContext map[string]string
+}
+
+func (input DecryptStructureInput) Validate() error {
+	if input.AuthenticateSchema == nil {
+		return fmt.Errorf("input.AuthenticateSchema is required but has a nil value.")
+	}
+	if input.EncryptedStructure == nil {
+		return fmt.Errorf("input.EncryptedStructure is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_encryptedStructure_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_encryptedStructure_Validate()
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_encryptionContext_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_encryptionContext_Validate()
+	}
+
+	return nil
+}
+
+func (input DecryptStructureInput) Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_encryptedStructure_Validate() error {
+	for _, value := range input.EncryptedStructure {
+		if value.Validate() != nil {
+			return value.Validate()
+		}
+	}
+
+	return nil
+}
+func (input DecryptStructureInput) Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureInput_encryptionContext_Validate() error {
+	for key, value := range input.EncryptionContext {
+		if !utf8.ValidString(key) {
+			return fmt.Errorf("Invalid UTF bytes %s ", key)
+		}
+		if !utf8.ValidString(value) {
+			return fmt.Errorf("Invalid UTF bytes %s ", value)
+		}
+	}
+
+	return nil
+}
+
+type DecryptStructureOutput struct {
+	CryptoSchema map[string]CryptoAction
+
+	ParsedHeader ParsedHeader
+
+	PlaintextStructure map[string]StructuredDataTerminal
+}
+
+func (input DecryptStructureOutput) Validate() error {
+	if input.CryptoSchema == nil {
+		return fmt.Errorf("input.CryptoSchema is required but has a nil value.")
+	}
+	if input.ParsedHeader.Validate() != nil {
+		return input.ParsedHeader.Validate()
+	}
+	if input.PlaintextStructure == nil {
+		return fmt.Errorf("input.PlaintextStructure is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureOutput_plaintextStructure_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureOutput_plaintextStructure_Validate()
+	}
+
+	return nil
+}
+
+func (input DecryptStructureOutput) Aws_cryptography_dbEncryptionSdk_structuredEncryption_DecryptStructureOutput_plaintextStructure_Validate() error {
+	for _, value := range input.PlaintextStructure {
+		if value.Validate() != nil {
+			return value.Validate()
+		}
+	}
+
+	return nil
+}
+
+type EncryptPathStructureInput struct {
+	Cmm awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsManager
+
+	PlaintextStructure []CryptoItem
+
+	TableName string
+
+	AlgorithmSuiteId *awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId
+
+	EncryptionContext map[string]string
+}
+
+func (input EncryptPathStructureInput) Validate() error {
+	if input.PlaintextStructure == nil {
+		return fmt.Errorf("input.PlaintextStructure is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_plaintextStructure_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_plaintextStructure_Validate()
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_encryptionContext_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_encryptionContext_Validate()
+	}
+
+	return nil
+}
+
+func (input EncryptPathStructureInput) Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_plaintextStructure_Validate() error {
+	for _, item := range input.PlaintextStructure {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+func (input EncryptPathStructureInput) Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureInput_encryptionContext_Validate() error {
+	for key, value := range input.EncryptionContext {
+		if !utf8.ValidString(key) {
+			return fmt.Errorf("Invalid UTF bytes %s ", key)
+		}
+		if !utf8.ValidString(value) {
+			return fmt.Errorf("Invalid UTF bytes %s ", value)
+		}
+	}
+
+	return nil
+}
+
+type EncryptPathStructureOutput struct {
+	EncryptedStructure []CryptoItem
+
+	ParsedHeader ParsedHeader
+}
+
+func (input EncryptPathStructureOutput) Validate() error {
+	if input.EncryptedStructure == nil {
+		return fmt.Errorf("input.EncryptedStructure is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureOutput_encryptedStructure_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureOutput_encryptedStructure_Validate()
+	}
+	if input.ParsedHeader.Validate() != nil {
+		return input.ParsedHeader.Validate()
+	}
+
+	return nil
+}
+
+func (input EncryptPathStructureOutput) Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptPathStructureOutput_encryptedStructure_Validate() error {
+	for _, item := range input.EncryptedStructure {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+
+type EncryptStructureInput struct {
+	Cmm awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsManager
+
+	CryptoSchema map[string]CryptoAction
+
+	PlaintextStructure map[string]StructuredDataTerminal
+
+	TableName string
+
+	AlgorithmSuiteId *awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId
+
+	EncryptionContext map[string]string
+}
+
+func (input EncryptStructureInput) Validate() error {
+	if input.CryptoSchema == nil {
+		return fmt.Errorf("input.CryptoSchema is required but has a nil value.")
+	}
+	if input.PlaintextStructure == nil {
+		return fmt.Errorf("input.PlaintextStructure is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_plaintextStructure_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_plaintextStructure_Validate()
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_encryptionContext_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_encryptionContext_Validate()
+	}
+
+	return nil
+}
+
+func (input EncryptStructureInput) Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_plaintextStructure_Validate() error {
+	for _, value := range input.PlaintextStructure {
+		if value.Validate() != nil {
+			return value.Validate()
+		}
+	}
+
+	return nil
+}
+func (input EncryptStructureInput) Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureInput_encryptionContext_Validate() error {
+	for key, value := range input.EncryptionContext {
+		if !utf8.ValidString(key) {
+			return fmt.Errorf("Invalid UTF bytes %s ", key)
+		}
+		if !utf8.ValidString(value) {
+			return fmt.Errorf("Invalid UTF bytes %s ", value)
+		}
+	}
+
+	return nil
+}
+
+type EncryptStructureOutput struct {
+	CryptoSchema map[string]CryptoAction
+
+	EncryptedStructure map[string]StructuredDataTerminal
+
+	ParsedHeader ParsedHeader
+}
+
+func (input EncryptStructureOutput) Validate() error {
+	if input.CryptoSchema == nil {
+		return fmt.Errorf("input.CryptoSchema is required but has a nil value.")
+	}
+	if input.EncryptedStructure == nil {
+		return fmt.Errorf("input.EncryptedStructure is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureOutput_encryptedStructure_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureOutput_encryptedStructure_Validate()
+	}
+	if input.ParsedHeader.Validate() != nil {
+		return input.ParsedHeader.Validate()
+	}
+
+	return nil
+}
+
+func (input EncryptStructureOutput) Aws_cryptography_dbEncryptionSdk_structuredEncryption_EncryptStructureOutput_encryptedStructure_Validate() error {
+	for _, value := range input.EncryptedStructure {
+		if value.Validate() != nil {
+			return value.Validate()
+		}
+	}
+
+	return nil
+}
+
+type ResolveAuthActionsInput struct {
+	AuthActions []AuthItem
+
+	HeaderBytes []byte
+
+	TableName string
+}
+
+func (input ResolveAuthActionsInput) Validate() error {
+	if input.AuthActions == nil {
+		return fmt.Errorf("input.AuthActions is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsInput_authActions_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsInput_authActions_Validate()
+	}
+
+	return nil
+}
+
+func (input ResolveAuthActionsInput) Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsInput_authActions_Validate() error {
+	for _, item := range input.AuthActions {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+
+type ResolveAuthActionsOutput struct {
+	CryptoActions []CryptoItem
+}
+
+func (input ResolveAuthActionsOutput) Validate() error {
+	if input.CryptoActions == nil {
+		return fmt.Errorf("input.CryptoActions is required but has a nil value.")
+	}
+	if input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsOutput_cryptoActions_Validate() != nil {
+		return input.Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsOutput_cryptoActions_Validate()
+	}
+
+	return nil
+}
+
+func (input ResolveAuthActionsOutput) Aws_cryptography_dbEncryptionSdk_structuredEncryption_ResolveAuthActionsOutput_cryptoActions_Validate() error {
+	for _, item := range input.CryptoActions {
+		if item.Validate() != nil {
+			return item.Validate()
+		}
+	}
+
+	return nil
+}
+
+type AtomicPrimitivesReference struct {
+}
+
+func (input AtomicPrimitivesReference) Validate() error {
+
+	return nil
+}
+
+type StructuredEncryptionConfig struct {
+}
+
+func (input StructuredEncryptionConfig) Validate() error {
+
+	return nil
+}
+
+// PathSegmentMembermember
+type PathSegment interface {
+	isPathSegment()
+}
+
+type PathSegmentMembermember struct {
+	Value StructureSegment
+}
+
+func (*PathSegmentMembermember) isPathSegment() {}
+
+type StructuredEncryptionBaseException interface {
+	// This is a dummy method to allow type assertion since Go empty interfaces
+	// aren't useful for type assertion checks. No concrete class is expected to implement
+	// this method. This is also not exported.
+	interfaceBindingMethod()
+}
diff --git a/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes/unmodelled_errors.go b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes/unmodelled_errors.go
new file mode 100644
index 000000000..43a2adee7
--- /dev/null
+++ b/DynamoDbEncryption/runtimes/go/TestsFromDafny-go/awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes/unmodelled_errors.go
@@ -0,0 +1,26 @@
+// Code generated by smithy-go-codegen DO NOT EDIT.
+
+package awscryptographydbencryptionsdkstructuredencryptionsmithygeneratedtypes
+
+import (
+	"fmt"
+)
+
+type CollectionOfErrors struct {
+	StructuredEncryptionBaseException
+	ListOfErrors []error
+	Message      string
+}
+
+func (e CollectionOfErrors) Error() string {
+	return fmt.Sprintf("message: %s\n err %v", e.Message, e.ListOfErrors)
+}
+
+type OpaqueError struct {
+	StructuredEncryptionBaseException
+	ErrObject interface{}
+}
+
+func (e OpaqueError) Error() string {
+	return fmt.Sprintf("message: %v", e.ErrObject)
+}
diff --git a/submodules/smithy-dafny b/submodules/smithy-dafny
index 2f83e28ad..97456490a 160000
--- a/submodules/smithy-dafny
+++ b/submodules/smithy-dafny
@@ -1 +1 @@
-Subproject commit 2f83e28ad9532b24c93d2229476c9a268355d338
+Subproject commit 97456490a31f37c28d2269b26bce4007ca0edf59