// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 include "DdbMiddlewareConfig.dfy" include "DdbStatement.dfy" include "PutItemTransform.dfy" include "GetItemTransform.dfy" include "UpdateItemTransform.dfy" include "BatchWriteItemTransform.dfy" include "TransactWriteItemsTransform.dfy" include "BatchGetItemTransform.dfy" include "ScanTransform.dfy" include "QueryTransform.dfy" include "TransactGetItemsTransform.dfy" include "DeleteItemTransform.dfy" include "ExecuteStatementTransform.dfy" include "BatchExecuteStatementTransform.dfy" include "ExecuteTransactionTransform.dfy" module AwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations refines AbstractAwsCryptographyDbEncryptionSdkDynamoDbTransformsOperations { import opened DdbMiddlewareConfig import DDB = ComAmazonawsDynamodbTypes import AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes import DynamoDbItemEncryptor import DynamoToStruct import ENC = AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorOperations import EncTypes = AwsCryptographyDbEncryptionSdkDynamoDbItemEncryptorTypes import AwsCryptographyDbEncryptionSdkStructuredEncryptionTypes import Seq import DdbStatement import PutItemTransform import GetItemTransform import UpdateItemTransform import BatchWriteItemTransform import TransactWriteItemsTransform import BatchGetItemTransform import ScanTransform import QueryTransform import TransactGetItemsTransform import DeleteItemTransform import ExecuteStatementTransform import BatchExecuteStatementTransform import ExecuteTransactionTransform predicate ValidInternalConfig?(config: InternalConfig) { ValidConfig?(config) } function ModifiesInternalConfig(config: InternalConfig) : set { ModifiesConfig(config) } type InternalConfig = Config predicate PutItemInputTransformEnsuresPublicly(input: PutItemInputTransformInput, output: Result) {true} method PutItemInputTransform(config: InternalConfig, input: PutItemInputTransformInput) returns (output: Result) { output := PutItemTransform.Input(config, input); } predicate PutItemOutputTransformEnsuresPublicly(input: PutItemOutputTransformInput, output: Result) {true} method PutItemOutputTransform(config: InternalConfig, input: PutItemOutputTransformInput) returns (output: Result) { output := PutItemTransform.Output(config, input); } predicate GetItemInputTransformEnsuresPublicly(input: GetItemInputTransformInput, output: Result) {true} method GetItemInputTransform(config: InternalConfig, input: GetItemInputTransformInput) returns (output: Result) { output := GetItemTransform.Input(config, input); } predicate GetItemOutputTransformEnsuresPublicly(input: GetItemOutputTransformInput, output: Result) {true} method GetItemOutputTransform(config: InternalConfig, input: GetItemOutputTransformInput) returns (output: Result) { output := GetItemTransform.Output(config, input); } predicate UpdateItemInputTransformEnsuresPublicly(input: UpdateItemInputTransformInput, output: Result) {true} method UpdateItemInputTransform(config: InternalConfig, input: UpdateItemInputTransformInput) returns (output: Result) { output := UpdateItemTransform.Input(config, input); } predicate UpdateItemOutputTransformEnsuresPublicly(input: UpdateItemOutputTransformInput, output: Result) {true} method UpdateItemOutputTransform(config: InternalConfig, input: UpdateItemOutputTransformInput) returns (output: Result) { output := UpdateItemTransform.Output(config, input); } predicate BatchWriteItemInputTransformEnsuresPublicly(input: BatchWriteItemInputTransformInput, output: Result) {true} method BatchWriteItemInputTransform(config: InternalConfig, input: BatchWriteItemInputTransformInput) returns (output: Result) { output := BatchWriteItemTransform.Input(config, input); } predicate BatchWriteItemOutputTransformEnsuresPublicly(input: BatchWriteItemOutputTransformInput, output: Result) {true} method BatchWriteItemOutputTransform(config: InternalConfig, input: BatchWriteItemOutputTransformInput) returns (output: Result) { output := BatchWriteItemTransform.Output(config, input); } predicate TransactWriteItemsInputTransformEnsuresPublicly(input: TransactWriteItemsInputTransformInput, output: Result) {true} method TransactWriteItemsInputTransform(config: InternalConfig, input: TransactWriteItemsInputTransformInput) returns (output: Result) { output := TransactWriteItemsTransform.Input(config, input); } predicate TransactWriteItemsOutputTransformEnsuresPublicly(input: TransactWriteItemsOutputTransformInput, output: Result) {true} method TransactWriteItemsOutputTransform(config: InternalConfig, input: TransactWriteItemsOutputTransformInput) returns (output: Result) { output := TransactWriteItemsTransform.Output(config, input); } predicate BatchGetItemInputTransformEnsuresPublicly(input: BatchGetItemInputTransformInput, output: Result) {true} method BatchGetItemInputTransform(config: InternalConfig, input: BatchGetItemInputTransformInput) returns (output: Result) { output := BatchGetItemTransform.Input(config, input); } predicate BatchGetItemOutputTransformEnsuresPublicly(input: BatchGetItemOutputTransformInput, output: Result) {true} method BatchGetItemOutputTransform(config: InternalConfig, input: BatchGetItemOutputTransformInput) returns (output: Result) { output := BatchGetItemTransform.Output(config, input); } predicate ScanInputTransformEnsuresPublicly(input: ScanInputTransformInput, output: Result) {true} method ScanInputTransform(config: InternalConfig, input: ScanInputTransformInput) returns (output: Result) { output := ScanTransform.Input(config, input); } predicate ScanOutputTransformEnsuresPublicly(input: ScanOutputTransformInput, output: Result) {true} method ScanOutputTransform(config: InternalConfig, input: ScanOutputTransformInput) returns (output: Result) { output := ScanTransform.Output(config, input); } predicate QueryInputTransformEnsuresPublicly(input: QueryInputTransformInput, output: Result) {true} method QueryInputTransform(config: InternalConfig, input: QueryInputTransformInput) returns (output: Result) { output := QueryTransform.Input(config, input); } predicate QueryOutputTransformEnsuresPublicly(input: QueryOutputTransformInput, output: Result) {true} method QueryOutputTransform(config: InternalConfig, input: QueryOutputTransformInput) returns (output: Result) { output := QueryTransform.Output(config, input); } predicate TransactGetItemsInputTransformEnsuresPublicly(input: TransactGetItemsInputTransformInput, output: Result) {true} method TransactGetItemsInputTransform(config: InternalConfig, input: TransactGetItemsInputTransformInput) returns (output: Result) { output := TransactGetItemsTransform.Input(config, input); } predicate TransactGetItemsOutputTransformEnsuresPublicly(input: TransactGetItemsOutputTransformInput, output: Result) {true} method TransactGetItemsOutputTransform(config: InternalConfig, input: TransactGetItemsOutputTransformInput) returns (output: Result) { output := TransactGetItemsTransform.Output(config, input); } predicate DeleteItemInputTransformEnsuresPublicly(input: DeleteItemInputTransformInput, output: Result) {true} method DeleteItemInputTransform(config: InternalConfig, input: DeleteItemInputTransformInput) returns (output: Result) { output := DeleteItemTransform.Input(config, input); } predicate DeleteItemOutputTransformEnsuresPublicly(input: DeleteItemOutputTransformInput, output: Result) {true} method DeleteItemOutputTransform(config: InternalConfig, input: DeleteItemOutputTransformInput) returns (output: Result) { output := DeleteItemTransform.Output(config, input); } predicate ExecuteStatementInputTransformEnsuresPublicly(input: ExecuteStatementInputTransformInput, output: Result) {true} method ExecuteStatementInputTransform(config: InternalConfig, input: ExecuteStatementInputTransformInput) returns (output: Result) { output := ExecuteStatementTransform.Input(config, input); } predicate ExecuteStatementOutputTransformEnsuresPublicly(input: ExecuteStatementOutputTransformInput, output: Result) {true} method ExecuteStatementOutputTransform(config: InternalConfig, input: ExecuteStatementOutputTransformInput) returns (output: Result) { output := ExecuteStatementTransform.Output(config, input); } predicate BatchExecuteStatementInputTransformEnsuresPublicly(input: BatchExecuteStatementInputTransformInput, output: Result) {true} method BatchExecuteStatementInputTransform(config: InternalConfig, input: BatchExecuteStatementInputTransformInput) returns (output: Result) { output := BatchExecuteStatementTransform.Input(config, input); } predicate BatchExecuteStatementOutputTransformEnsuresPublicly(input: BatchExecuteStatementOutputTransformInput, output: Result) {true} method BatchExecuteStatementOutputTransform(config: InternalConfig, input: BatchExecuteStatementOutputTransformInput) returns (output: Result) { output := BatchExecuteStatementTransform.Output(config, input); } predicate ExecuteTransactionInputTransformEnsuresPublicly(input: ExecuteTransactionInputTransformInput, output: Result) {true} method ExecuteTransactionInputTransform(config: InternalConfig, input: ExecuteTransactionInputTransformInput) returns (output: Result) { output := ExecuteTransactionTransform.Input(config, input); } predicate ExecuteTransactionOutputTransformEnsuresPublicly(input: ExecuteTransactionOutputTransformInput, output: Result) {true} method ExecuteTransactionOutputTransform(config: InternalConfig, input: ExecuteTransactionOutputTransformInput) returns (output: Result) ensures output.Success? && output.value.transformedOutput == input.sdkOutput { output := ExecuteTransactionTransform.Output(config, input); } }